![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Orlan |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 10.6.2004 Где: Киев Репутация: нет Всего: 1 |
Есть код:
Если закомментировать четвертую строку и добавить в конец
то все компилируется нормально Компилятор Visual C++ 7.1 (2003) выдает ошибку: line 4: error C2039: 'inner_class' : is not a member of 'B' line 4: error C2146: syntax error : missing ';' before identifier 'inner_class' line 4: error C2501: 'A<T>::inner_class_' : missing storage-class or type specifiers Чего это он не хочет внутри класса делать дефайн? --------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов |
||||
|
|||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
Еще бы. Вы берёте тип из класса (B), которого еще не существует.
Для того чтобы класс B стал существовать в бренном мире (=> существовал B::inner_class) необходимо, чтобы существовал A<B>. До тех пор пока A<B> не существует, не существует и класса B. Класс A<B> требует существования класса B. Который не существует. Это сообщение отредактировал(а) Mayk - 18.1.2006, 18:01 -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
| Orlan |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 10.6.2004 Где: Киев Репутация: нет Всего: 1 |
Странно, а так копилится:
Чего же после переноса проблемной строки в тело метода уже не "требуется существование класса В" или методы не "создаются" вместе с классом? --------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов |
|||
|
||||
| Mayk |
|
||||||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
Сравните:
и
вот тут примерно то же самое. -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
||||||
|
|||||||
| Orlan |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 10.6.2004 Где: Киев Репутация: нет Всего: 1 |
Ясно, прийдется использовать производный класс только в телах методов. Спасибо.
--------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов |
|||
|
||||
| LuckLess |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 15.9.2004 Репутация: 1 Всего: 1 |
попробуйте так
или так
|
||||
|
|||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
Можно использовать еще такой трюк:
Это сообщение отредактировал(а) Mayk - 18.1.2006, 20:17 -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
| Orlan |
|
||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 10.6.2004 Где: Киев Репутация: нет Всего: 1 |
LuckLess, к сожаленью inner_class не определен в момент обработки строки:
Mayk, а можно и так написать, что будет в данном случае даже проще:
Хотя сам трюк с Defs весьма интересен --------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов |
||||||||
|
|||||||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |