![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| peetonn |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 25.11.2006 Репутация: нет Всего: нет |
неоднородный список классов(т е список разных классов) - как можно реализовать это на С++?
я так думаю,что указатель на void ? или нет....? если да, то как его использовать? *имеется ввиду: какого типа должно быть поле данных в элементе списка и каким образом его использовать как класс Это сообщение отредактировал(а) peetonn - 18.12.2006, 01:31 |
|||
|
||||
| Kuvaldis |
|
|||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: 11 Всего: 61 |
peetonn,
Если объекты связаны между собой как потомки-родители, то очень красиво можно сделать через наследование и виртуальные функции. А объектом списка будет указатель на базовый класс. -------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
|||
|
||||
| peetonn |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 25.11.2006 Репутация: нет Всего: нет |
Kuvaldis, а если элементом списка будет не указатель на класс, а сам класс, ничего не получится? Дело в том, что список я создаю в отдельной функции(создаю переменные класса, унаследованного от родителя, запихиваю указатели на них в список), а после выхода из функции, эти переменные-то уничтожаются, соответсвенно указатели на них указывают не туда куда надо. как в этом случае поступить. создавать список там где его юзать? Это сообщение отредактировал(а) peetonn - 18.12.2006, 15:10 |
|||
|
||||
| Mad |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 7 Всего: 19 |
просто не удаляй эти обьекты выделяй их не в стеке а глобально
тогда они удаляться не будут, и указатели будут оставаться действительными. |
||||
|
|||||
| peetonn |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 25.11.2006 Репутация: нет Всего: нет |
это не очень удобно в моей ситуации. я делаю функцию создания окна(в консоли рисует). выглядетьт примерно так должно:
здесь в функцию создания окна (void CreateMainWindow(TWindow& )) передаем адрес окна . TWindow - мой класс. а уже в самой функции создаем там кнопки, надписи и пр. все компоненты хранятся в Списке. вот класс:
так вот после создания окна в функции, все указатели компонент удаляются( |
||||||
|
|||||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |