|
3 / 3 / 1
Регистрация: 02.03.2013
Сообщений: 231
|
||||||||||||||||
Наследование19.08.2020, 15:16. Показов 2717. Ответов 33
Потихоньку изучаю С++. Разбираю реализацию ООП на этом языке.
Сделал простенькие класса для понимания концепции наследования. Кликните здесь для просмотра всего текста
Решил добавить к этому контейнеры. Создал ещё два класса. Кликните здесь для просмотра всего текста
И тут началось. Не работает метод get_person() класса University. Не понимаю почему. dynamic_cast не помогает. Правда, я мб неправильно его использую? Делаю так
0
|
||||||||||||||||
| 19.08.2020, 15:16 | |
|
Ответы с готовыми решениями:
33
Заменить наследование классов на наследование интерфейсов Наследование С++ Наследование |
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
|||
| 22.08.2020, 23:33 | |||
|
1
|
|||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
|||||||
| 23.08.2020, 16:30 | |||||||
|
Кликните здесь для просмотра всего текста
отдельно add_professor не вижу смысла в классе university хотя с person'ами и прфессорами всё равно как-то туманно... всё-таки add_person и add_professor ещё доработать бы
1
|
|||||||
|
3 / 3 / 1
Регистрация: 02.03.2013
Сообщений: 231
|
|||||||
| 23.08.2020, 21:25 [ТС] | |||||||
0
|
|||||||
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
||||||
| 23.08.2020, 22:48 | ||||||
|
schoolboy_, да.
Добавлено через 5 минут А вот так:
1
|
||||||
|
3 / 3 / 1
Регистрация: 02.03.2013
Сообщений: 231
|
|
| 24.08.2020, 06:23 [ТС] | |
|
Что-то не сходится. Для Person и Professor нет конструктора по умолчанию. Так что будет вызывать компилятор?
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
|||||
| 24.08.2020, 07:53 | |||||
Кликните здесь для просмотра всего текста
0
|
|||||
|
3 / 3 / 1
Регистрация: 02.03.2013
Сообщений: 231
|
|
| 24.08.2020, 08:26 [ТС] | |
|
JeyCi, компилятор создаст конструктор по умолчанию, только если не задан не один конструктор? Но если пользователь задал конструктор сам, то компилятор ничего делать не будет. В классе Person и Professor есть пользовательские конструкторы.
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||
| 24.08.2020, 09:04 | ||
|
Инициализация в С++ может происходить не только посредством конструкторов.
1
|
||
|
3 / 3 / 1
Регистрация: 02.03.2013
Сообщений: 231
|
|||||||
| 24.08.2020, 09:06 [ТС] | |||||||
|
и что в итоге будет генерировать компилятор глядя на такой код:
0
|
|||||||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||||
| 24.08.2020, 09:10 | ||||
|
Вот это
Добавлено через 2 минуты В целом это сейчас не относится к теме. Я просто уточнил, что говорить в общем случае о конструкторах применительно к вектору не совсем корректно. Вектор выполняет инициализацию. Иногда она приводит к вызовам соответствующих конструкторов. Но, например, вектор из int никаких конструкторов не вызывает, по причине того, что у элементарных типов нет конструкторов. Вместо этого выполняется, например, zero-initialization.
1
|
||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||||||
| 24.08.2020, 13:59 | ||||||
|
как-то почище
Кликните здесь для просмотра всего текста
но с деструктором ещё разобраться, наверно... т.к. всё-таки память выделяется... значит и delete надо задействовать... чтобы не было утечки памяти... и висячих указателей в данном случае
0
|
||||||
| 24.08.2020, 14:03 | |
|
0
|
|
| 24.08.2020, 14:06 | |
|
Не по теме: я его у ТС'а взяла... теперь будем знать, когда у Stroustrup'а день рождения )) - см #32
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|||||||
| 24.08.2020, 14:17 | |||||||
std::vector<Person *> хранится, а не std::vector<Professor *>.Т.е. можно просто:
1
|
|||||||
| 24.08.2020, 14:17 | |
|
наследование Наследование наследование Наследование Наследование Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг.
Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует.
В процессе разработки. . .
|
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
|