![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Royan |
|
||||
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: нет Всего: 15 |
Имеется следующая конструкция
Требуется расставить инструкции #include чтобы ничего не сглючило ![]() -------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
||||
|
|||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
в Base.h пишеш #include Child.h
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
Royan |
|
|||
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: нет Всего: 15 |
Так нельзя, так как первым будет вложен Child.h и там где происходит public Base{ класс Base будет еще не определен -------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
сорри не заметил наследования
по-моему так как ты хочеш -- сделать нельзя возможно задачу иначе решать нужно ( через виртуальные методы хотя бы ) -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 2 Всего: 99 |
А там и там оба includ'a написать?
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
Royan |
|
|||
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: нет Всего: 15 |
А конкретнее можно? -------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
|||
|
||||
sergejzr |
|
||||||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Попробуй так: Заметь, в классе "Base" находится указатель на обьект "Child".
Вообще пересмотри архитектуру классов. Часто без таких извращений можно обойтись ![]() Ещё один выход хранить указатель на Base (ведь Child тот же Base). А в cpp файле в функциях, где тебе нужен Child делать преобразование:
Потом сможешь вызывать функции Child'а. |
||||||
|
|||||||
maxim1000 |
|
||||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 17 Всего: 110 |
так нельзя в принципе ни один объект какого-нибудь класса не может содержать объекта того же или производного класса (ну как может к примеру программист быть составной частью человека ![]() к тому же, если порассуждать, размер такого объекта будет бесконечен...
а зачем вообще подключать "Child.h"? достаточно того, что класс предварительно объявлен -------------------- qqq |
||||||||||
|
|||||||||||
mr.DUDA |
|
||||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
Можно пойти вот таким путём с пом. ссылок, если не хочется указателей (как предложил sergej.z), но только придётся обязательно инициализировать ссылку в конструкторах всех дочерних классов:
и
З.Ы. кстати, а зачем в классе Child (унаследованном от Base) иметь объект класса Child ?... ![]() -------------------- ![]() |
||||
|
|||||
chipset |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
Может надо кольцевой список, когда последний обьект указывает на первый или что то типа этого?
![]() --------------------
|
|||
|
||||
cardinal |
|
||||||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 2 Всего: 99 |
но это просто предположение... -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
||||||
|
|||||||
BraM's |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 2.7.2004 Репутация: нет Всего: 1 |
Я предлагаю использовать *.срр файл. например файл child.cpp
У меня заработало. Я вообще считаю, что обьявление инклудов в Н-файлах - плоховастый тон программирования, по крайней мере для меня. Я обхожусь без этого. |
|||
|
||||
gray_k |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1015 Регистрация: 9.1.2003 Где: Москва Репутация: нет Всего: 22 |
???????????????????????????????????????????????????????????? Почему. Интересно, а у Вас большой опыт программирования? -------------------- С уважением. Gray. |
|||
|
||||
Олег М |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 10.6.2004 Где: Москва Репутация: 7 Всего: 7 |
Внчале каждого хёдера пиши
и не парься |
|||
|
||||
chipset |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
Олег М
Ты пробовал? --------------------
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |