![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
userx3 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 8.10.2009 Репутация: нет Всего: нет |
Как разрешить 2 классам обращаться к друг к другу?
Второй класс может обратиться к первому, т.к. первый объявлен раньше его. А вот первый класс не может обратиться ко второму и пишет ошибку error: `MyClass2' was not declared in this scope Как предопределить второй класс? Это сообщение отредактировал(а) userx3 - 8.10.2009, 21:55 |
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 4 Всего: 91 |
Этот вопрос скорее по C++, чем по Qt. Если ничего не путаю, то достаточно добавить объявление второго класса перед первым таким образом:
Вот только я бы порекомендовал из конструктора одного из классов убрать создание объекта другого. У тебя рекурсия возникает, которая в итоге приведет к падению приложения. А это вообще не правильно поставленный вопрос, т.к. на него напрашивается ответ на тему спецификаторов доступа friend или через указатель. Это сообщение отредактировал(а) SABROG - 8.10.2009, 22:58 |
|||
|
||||
userx3 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 8.10.2009 Репутация: нет Всего: нет |
Я пробовал так. Qt говорит в строчке MyClass2 cl2; error: invalid use of undefined type `struct MyClass2' и error: forward declaration of `struct MyClass2' |
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 4 Всего: 91 |
Вынеси реализацию методов в отдельные .cpp файлы.
Это не Qt говорит, а компилятор. Это сообщение отредактировал(а) SABROG - 9.10.2009, 00:03 |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Это обычная практика - предварительное объявление в хидере, инклюд в цпп-шнике.
PS. Qt не при делах. |
|||
|
||||
userx3 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 8.10.2009 Репутация: нет Всего: нет |
И как исправить?
|
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
||||
|
||||
Mephisto |
|
|||
![]() Волкъ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1818 Регистрация: 27.8.2003 Где: Питер Репутация: нет Всего: 34 |
Думаю следующий вопрос должен быть следующим:
![]() Это сообщение отредактировал(а) Mephisto - 12.10.2009, 19:36 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |