|
244 / 164 / 133
Регистрация: 30.09.2012
Сообщений: 690
|
|||||||||||||||||||||||||||||||
Как хранить объекты разных классов в одном контейнере23.10.2014, 18:29. Показов 8235. Ответов 4
Метки нет (Все метки)
Здравствуйте!
Хочу реализовать хранение разных классов(базовый и наследник) в одном контейнере. На форуме искал, но, к сожалению, не нашел ответа на свой вопрос. Понял только то, что я должен хранить указатели на объекты классов. Что я попробовал сделать: Классы: Кликните здесь для просмотра всего текста
Реализация методов: Кликните здесь для просмотра всего текста
Хранение: Кликните здесь для просмотра всего текста
Вывод: Кликните здесь для просмотра всего текста
Т.е. у меня есть виртуальный метод get_message(), следовательно, когда я обращаюсь к объекту через указатель, компилятор должен сам выбрать, какой из методов вызвать. Он же вызывает всегда метод базового класса ![]() До этого сохранял объекты в контейнер так:
Пробовал еще делать так:
Заранее спасибо за помощь!
0
|
|||||||||||||||||||||||||||||||
| 23.10.2014, 18:29 | |
|
Ответы с готовыми решениями:
4
Объекты разных типов в одном контейнере и c++ 11 auto Как сделать хитрое наследование? Хранить в одном контейнере родителя и потомков
|
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|||
| 23.10.2014, 18:36 | |||
|
0
|
|||
|
244 / 164 / 133
Регистрация: 30.09.2012
Сообщений: 690
|
|||||||||||||
| 23.10.2014, 18:43 [ТС] | |||||||||||||
![]() Например:
Кликните здесь для просмотра всего текста
Ошибки: D:\WorkC\GUIver3-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK_________\..\GUIver3\dialo g.cpp:119: ошибка: request for member 'get_message' in '* el.std::_List_iterator<_Tp>::operator-> [with _Tp = info*]()', which is of non-class type 'info*'
0
|
|||||||||||||
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
||||||||
| 23.10.2014, 18:45 | ||||||||
Сообщение было отмечено Gr1f0nn как решение
РешениеЕсли
1
|
||||||||
|
244 / 164 / 133
Регистрация: 30.09.2012
Сообщений: 690
|
|
| 23.10.2014, 18:49 [ТС] | |
|
0x10, Оно заработало!
![]() Большое спасибо! Не по теме: Про скобочки-то я и забыл
0
|
|
| 23.10.2014, 18:49 | |
|
Помогаю со студенческими работами здесь
5
Хранение в контейнере обьектов разных классов Как приравнять объекты двух разных классов
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
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, то после закрытия окошка. . .
|