|
3 / 3 / 1
Регистрация: 02.03.2013
Сообщений: 231
|
||||||||||||||||
Наследование19.08.2020, 15:16. Показов 2418. Ответов 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
|
|||
|
262 / 151 / 33
Регистрация: 29.06.2019
Сообщений: 1,518
|
|||||||
| 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
|
|
|
262 / 151 / 33
Регистрация: 29.06.2019
Сообщений: 1,518
|
|||||
| 24.08.2020, 07:53 | |||||
Кликните здесь для просмотра всего текста
0
|
|||||
|
3 / 3 / 1
Регистрация: 02.03.2013
Сообщений: 231
|
|
| 24.08.2020, 08:26 [ТС] | |
|
JeyCi, компилятор создаст конструктор по умолчанию, только если не задан не один конструктор? Но если пользователь задал конструктор сам, то компилятор ничего делать не будет. В классе Person и Professor есть пользовательские конструкторы.
0
|
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
||
| 24.08.2020, 09:04 | ||
|
Инициализация в С++ может происходить не только посредством конструкторов.
1
|
||
|
3 / 3 / 1
Регистрация: 02.03.2013
Сообщений: 231
|
|||||||
| 24.08.2020, 09:06 [ТС] | |||||||
|
и что в итоге будет генерировать компилятор глядя на такой код:
0
|
|||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
||||
| 24.08.2020, 09:10 | ||||
|
Вот это
Добавлено через 2 минуты В целом это сейчас не относится к теме. Я просто уточнил, что говорить в общем случае о конструкторах применительно к вектору не совсем корректно. Вектор выполняет инициализацию. Иногда она приводит к вызовам соответствующих конструкторов. Но, например, вектор из int никаких конструкторов не вызывает, по причине того, что у элементарных типов нет конструкторов. Вместо этого выполняется, например, zero-initialization.
1
|
||||
|
262 / 151 / 33
Регистрация: 29.06.2019
Сообщений: 1,518
|
||||||
| 24.08.2020, 13:59 | ||||||
|
как-то почище
Кликните здесь для просмотра всего текста
но с деструктором ещё разобраться, наверно... т.к. всё-таки память выделяется... значит и delete надо задействовать... чтобы не было утечки памяти... и висячих указателей в данном случае
0
|
||||||
| 24.08.2020, 14:03 | |
|
0
|
|
| 24.08.2020, 14:06 | |
|
Не по теме: я его у ТС'а взяла... теперь будем знать, когда у Stroustrup'а день рождения )) - см #32
0
|
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|||||||
| 24.08.2020, 14:17 | |||||||
std::vector<Person *> хранится, а не std::vector<Professor *>.Т.е. можно просто:
1
|
|||||||
| 24.08.2020, 14:17 | |
|
Помогаю со студенческими работами здесь
34
наследование Наследование наследование Наследование Наследование Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
*/
#include <iostream>
#include <stack>
#include <cctype>. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|