Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Nishen
664 / 430 / 220
Регистрация: 26.02.2015
Сообщений: 1,987
Завершенные тесты: 3
1

Практическое применение классов без создания объектов этого класса

24.10.2016, 19:39. Просмотров 1052. Ответов 2

Приветствую всех! Читай книгу Р. Лафоре "ООП в C++" увидел вопрос:
"Истинно ли следующее утверждение: иногда полезно создать класс, объектов которого никогда не будет создано?"

Автор утверждает, что утверждение истинно, но без каких-либо разъяснений. Могли бы вы привести парочку практических примеров, когда такое имеет место быть.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2016, 19:39
Ответы с готовыми решениями:

Построение описания класса, создание и уничтожение объектов этого класса
Построить описание класса, содержащего информацию о почтовом адресе организации. Предусмотреть...

Практическое применение c++
Решил изучить с++, но столкнулся со следующей проблемой: как программы на этом языке применяются на...

Вызов метода класса без создания экземпляра класса.
В общем мне для функционирования одной программы нужно постоянно вызывать метод одного из классов....

Практическое применение виртуальных функций
Собственно препод задал вопрос, рассказал ему все про механическую сторону вопроса, мол что такое,...

Реализовать внешние функции для создания и уничтожения объектов класса
Здравствуйте, имеется вот такое задание: Создайте класс с закрытыми конструкторами и деструктором....

2
alex white
272 / 224 / 91
Регистрация: 27.06.2016
Сообщений: 633
Завершенные тесты: 1
24.10.2016, 19:41 2
Nishen, абстрактные классы. Есть ещё классы со статическими полями и методами (т.е. которые можно использовать без объектов), но лично я не вижу никаких преимуществ перед пространствами имён, разве что возможность использовать модификаторы доступа (private, public, protected) и шаблонизация.
1
Croessmah
++Ͻ
15315 / 8688 / 1659
Регистрация: 27.09.2012
Сообщений: 21,414
Записей в блоге: 2
Завершенные тесты: 1
24.10.2016, 20:01 3
Лучший ответ Сообщение было отмечено gru74ik как решение

Решение

Nishen, например:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
//g++  4.9.3
 
#include <iostream>
#include <iomanip>
 
 
struct true_type
{
    char x;
};
 
 
struct false_type
{
    char x[100];
};
 
 
 
 
namespace details__
{
 
 
template<typename T>
struct is_base_of_intrnl
{    
    static true_type check (T const *);
    static false_type check (...);    
};
    
    
    
    
}//details__
 
 
 
 
template<typename T, typename U>
struct is_base_of
{
    enum 
    {
        value = sizeof(details__::is_base_of_intrnl<T>::check((U*)0)) == sizeof(true_type)
    };
};
 
 
 
 
 
 
 
 
struct A{};
 
struct B: A{};
 
struct C: B{};
 
struct D{};
 
 
 
 
#define ISBASEOF(x, y)                                       \
    std::cout << "is_base_of<" #x ", " #y ">::value = "      \
    << std::boolalpha                                        \
    << (bool)is_base_of<x, y>::value                         \
    << std::endl;
 
 
int main()
{
    ISBASEOF(int, A)
    ISBASEOF(A, int)
    ISBASEOF(A, B)
    ISBASEOF(A, C)
    ISBASEOF(B, C)
    ISBASEOF(C, B)
    ISBASEOF(A, D)
    ISBASEOF(D, C)
}
http://rextester.com/IMPJ70985

Классы A, B, C, D не рассматриваем.
Объекты типов false_type, true_type, is_base_of_intrnl и is_base_of не создаются,
однако классы выполняют полезную работу.
Также, заметьте, что в is_base_of_intrnl хоть и есть статические функции check,
они никогда не вызываются, у них даже определения нет, но они тоже вносят вклад.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2016, 20:01

Методы создания объектов,классов и их элементов
Методы создания объектов,классов и их элементов.

Практическое применение си
Всем привет) Более менее научился что-то писать на си, но теперь хочется написать что-то полезное....

Практическое применение атрибутов
Доброе время суток! В свободное время с удовольствием почитываю С# 4.0 Шилдта. Дошел до атрибутов....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru