0 / 0 / 0
Регистрация: 20.02.2010
Сообщений: 29
1

Указатель на потомка в базовом классе.

08.03.2010, 13:20. Показов 1795. Ответов 6
Метки нет (Все метки)

Мне нужно создать в базовом классе массив указателей на потомки этого класса. Помогите - как это сделать?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.03.2010, 13:20
Ответы с готовыми решениями:

Объявить в классе-наследнике указатель, указывающий туда же, куда указывает указатель в классе-родителе
Здравствуйте. Имеется базовый класс MainWindow: #ifndef MAINWINDOW_H #define MAINWINDOW_H...

Описание функции в базовом классе
Всем привет! Есть базовый класс TBaseForm, в заголовочном файле описана функция: public: ...

Указатель дочернего класса в базовом
Добрый день. ОШИБКА: ..\main.cpp:6: error: invalid use of incomplete type 'struct A'...

Виртуальность friend-метода в базовом классе
Привет всем. Прошу посмотрите данный код. В производном классе реализована перегрузка оператора...

6
66 / 66 / 5
Регистрация: 12.03.2008
Сообщений: 392
08.03.2010, 13:24 2
Попробуй предописать класс. А потом ниже в самом объявлении класса создавать массив.
0
Эксперт С++
1667 / 1039 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
08.03.2010, 13:25 3
А зачем тебе указывать именно на потомков? Нет, ну если уж совсем приспичило, можно просто предварительно объявить:
C++
1
2
3
4
5
6
class Derived;
class Base {
    Derived *d[20];
};
 
class Derived: public Base {};
Но вообще сам факт того, что у тебя возникла такая необходимость, обычно свидетельствует, что у тебя в замысле что-то пошло серьёзно наперекосяк.
1
0 / 0 / 0
Регистрация: 20.02.2010
Сообщений: 29
08.03.2010, 13:39  [ТС] 4
Спасибо за помощь, работает.
0
Эксперт JavaЭксперт С++
8368 / 3590 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
08.03.2010, 15:59 5
RealDreamy, ознакомьтесь с понятием полиморфизм. Вам незачем создавать массив указателей на потомков, вам достаточно всего лишь создать массив указателей на базовый класс
0
Эксперт С++
5820 / 3472 / 357
Регистрация: 08.02.2010
Сообщений: 7,448
08.03.2010, 18:07 6
...и не забыть про виртуальные функции
0
0 / 0 / 0
Регистрация: 20.02.2010
Сообщений: 29
18.03.2010, 06:11  [ТС] 7
Цитата Сообщение от M128K145 Посмотреть сообщение
RealDreamy, ознакомьтесь с понятием полиморфизм. Вам незачем создавать массив указателей на потомков, вам достаточно всего лишь создать массив указателей на базовый класс
Но ведь в потомках есть поля, которых нет в базовом классе. О виртуальных функциях посмотрю, не припомню, что это такое)
Я просто раньше не прогал на ООП, и вообще серьезных программ не писал. Сейчас пишу меню, в котором может быть неограниченное количество подменю любого уровня вложенности, что бы можно было убравлять мышой, и возможность использования сочетания клавиш. В общем полноценное продуманное меню хочу сделать, чисто ради интереса и опыта. Для удобства сделал класс Menu, и два потомка MainMenu и PodMenu, так как они существенно отличаются по прорисовке, ну и еще несколько особенностей. Вот и понадобилось что бы и в главном меню, и в подменю были ссылки на другие подменю.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.03.2010, 06:11

Инициализация статической переменной в базовом классе
Есть класс Tank. От этого класса будут наследники MyTank и EnemyTank. В классе Tank есть...

Создание ссылки на производный класс в базовом классе
Доброго времени суток. Есть такой вопрос: "Как обратиться к методам производного класса из...

Скрытие в базовом классе программного элемента Shadows
Читаю в документации Все как бы хорошо, но Получается, что если метод в производном...

Вызов события в производном классе, которое объявлено в базовом
Доброго времени суток, Господа. Возник вопрос. Есть класс A: public abstract class A { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.