22 / 9 / 2
Регистрация: 16.10.2010
Сообщений: 115
|
|||||||||||
1 | |||||||||||
Создание коллекции объектов разных классов10.01.2013, 20:47. Показов 12614. Ответов 26
Метки нет (Все метки)
Здравствуйте. Помогите, пожалуйста, с задачкой создания коллекции объектов разных типов.
Я сначала реализовал программку, использовав list, но нужно, чтобы объекты классов заносились в одну коллекцию. Вот сижу, чешу репу.. не знай, что и делать
Помогите, плиз, разобраться.
0
|
10.01.2013, 20:47 | |
Ответы с готовыми решениями:
26
Разработать иерархию классов, демонстрирующее работу с коллекцией объектов разных классов Взаимодействие объектов разных классов Массив объектов разных производных классов Вектор объектов разных классов. Полиморфим |
10.01.2013, 20:55 | 2 | |||||
Синтаксис такой:
0
|
22 / 9 / 2
Регистрация: 16.10.2010
Сообщений: 115
|
||||||
10.01.2013, 21:45 [ТС] | 3 | |||||
Эм.. а если у меня есть 3 объекта разных классов и я хочу добавлять по одному элементу, соответственно pNext будет увеличиваться.. можно так сделать?
Добавлено через 1 минуту нужно будет просто еще 2 раза переопределить функцию addToList? Добавлено через 42 минуты Собственно, можно объявить тип (класс) X, который может использоваться как типы (классы) CX1, CX2, CX3 ??.. У меня видимо в этом и проблема.. Можно ли как-нибудь определить такой тип? Чтобы не писать 3 переменные nValue, а при добавлении объекта одного из трех классов, этот объект добавлялся, и изменялся pNext. Примерно так:
0
|
22 / 9 / 2
Регистрация: 16.10.2010
Сообщений: 115
|
|
10.01.2013, 21:51 [ТС] | 5 |
Фишка в том, что у меня есть 3 объекта класса.. и мне их нужно добавить в одну коллекцию..
0
|
22 / 9 / 2
Регистрация: 16.10.2010
Сообщений: 115
|
|
10.01.2013, 21:54 [ТС] | 7 |
Даже, возможно, что таких объектов будет штук 10 (каждый объект относится к своему классу). и нужно как то их добавить в одну коллекцию.
0
|
10.01.2013, 21:54 | 8 |
Чтоб сильно не заморачиваться, можно сделать один базовый класс для этих твоих 3х классов, а в список помещать указатели на этот базовый класс, но фактически это могут быть указатели на любой из производных классов.
2
|
22 / 9 / 2
Регистрация: 16.10.2010
Сообщений: 115
|
|
10.01.2013, 21:58 [ТС] | 9 |
Спасибо.. про перечисление забыл вовсе)
Попробую Добавлено через 1 минуту Множественное наследование?
0
|
22 / 9 / 2
Регистрация: 16.10.2010
Сообщений: 115
|
|
10.01.2013, 22:28 [ТС] | 11 |
boost нежелателен(
Добавлено через 24 минуты Объявил перечисление перед описанием шаблона.. Теперь у меня ругается на то, что в мейне я объявил экземпляры моих классов.. что может быть не так? Добавлено через 2 минуты дело еще в том, что у меня один из трех классов - базовый, а остальные 2 - потомки.
0
|
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
|
|
10.01.2013, 22:39 | 12 |
1
|
22 / 9 / 2
Регистрация: 16.10.2010
Сообщений: 115
|
|
11.01.2013, 12:55 [ТС] | 13 |
0
|
11.01.2013, 13:36 | 14 | |||||
zener, может это имелось в виду
1
|
22 / 9 / 2
Регистрация: 16.10.2010
Сообщений: 115
|
|
11.01.2013, 19:51 [ТС] | 15 |
нет. нужно просто без stl сделать.
сегодня-завтра потыкаю.. если возникнут вопросы, напишу =) Вы в меня камнями не кидайте если что))) у меня просто не очень со списками))
0
|
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
|
||||||
11.01.2013, 20:15 | 16 | |||||
Точно так же вместо std::list параметризуй свой шаблон списка указателем на базовый класс, суть не меняется:
1
|
22 / 9 / 2
Регистрация: 16.10.2010
Сообщений: 115
|
|
12.01.2013, 21:47 [ТС] | 17 |
Спасибо.
я кажется реализовал свою мысль.. по крайней мере все компилится и выводится нужная мне информация Добавлено через 23 часа 44 минуты Эм. Возник вопрос по совету - хранить в классе указатель на базовый класс. Если хотя бы один производный класс имеет свои поля, не наследуемые от базового, то они не выводятся на экран, если я использую в классе только указатель на базовый класс.. Как их можно вывести эти поля тогда?
0
|
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
|
|
12.01.2013, 21:57 | 18 |
zener, используй виртуальные функции.
0
|
22 / 9 / 2
Регистрация: 16.10.2010
Сообщений: 115
|
|
12.01.2013, 22:00 [ТС] | 19 |
функция печати у меня виртуальная в базовом классе.
0
|
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
|
||||||
12.01.2013, 22:03 | 20 | |||||
эмм... можно код?
Добавлено через 1 минуту Вот на основе кода из 16-го поста:
0
|
12.01.2013, 22:03 | |
12.01.2013, 22:03 | |
Помогаю со студенческими работами здесь
20
Как сделать массив объектов разных классов? Запись и чтение объектов разных классов в один файл Вектор объектов разных классов. Доступ к свойствам элемента вектора Сохранить в одной коллекции несколько объектов классов одной ветви иерархии Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |