![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Гость_Maxim |
|
||||||
|
Unregistered |
Здравствуйте, у меня такой вопрос, почему код
не компилируется с ошибкой в 12 строке:
но код
удачно компилируется, хотя вроде бы он делает то же, что и первый ps. Компилятор g++ 4.0 |
||||||
|
|||||||
| nikitao |
|
|||
![]() Кот-программист ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1206 Регистрация: 30.8.2005 Где: Спб Репутация: 1 Всего: 26 |
В ошибке все написано:
Должен быть определен 2 парметр в... классе Base. У тебя написано:
Но Derived сам требует "пораметра" т к сам шаблон. Во втором случае все впорядке. Это сообщение отредактировал(а) nikitao - 16.10.2005, 18:05 -------------------- Жизнь - печальная штука. |
|||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 40 Всего: 173 |
Не должен компилироваться ни первый, ни второй вариант. Второй параметр шаблона Base должен быть шаблоном, а не его специализацией. Чтобы получить доступ к нему из scope класса Derived, надо записать так:
Проверял на Comeau. VC++ 8.0b2 позорно компилирует оба варианта. А g++ 3.4.2 повел себя молодцом. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| nikitao |
|
|||
![]() Кот-программист ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1206 Регистрация: 30.8.2005 Где: Спб Репутация: 1 Всего: 26 |
Позор! Но ведь ое должен компилить только до тех пор пока мы не создадим обьект класса Derived в исполняймой части. -------------------- Жизнь - печальная штука. |
|||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 40 Всего: 173 |
nikitao
+1 При попытке создать экземпляр Derived, VC начинает ругаться как положено. Ну что ж, такова специфика этого компилятора. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
работает, спасибо |
|||
|
||||
| srd |
|
|||
![]() Нереварин ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 951 Регистрация: 30.8.2003 Где: Владивосток Репутация: 27 Всего: 49 |
Вижуал действительно отличается поразительной ленивостью в отношении шаблонов. Например:
-------------------- Не смей читать мою подпись!!! |
|||
|
||||
| nikitao |
|
|||
![]() Кот-программист ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1206 Регистрация: 30.8.2005 Где: Спб Репутация: 1 Всего: 26 |
Короче VC не проверяет шаблон на правельность до тех пор пока не создается обьект этого шаблона.
Это сообщение отредактировал(а) nikitao - 17.10.2005, 17:31 -------------------- Жизнь - печальная штука. |
|||
|
||||
| LPBOY |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 12.7.2005 Репутация: 20 Всего: 20 |
Круто, конечно Объяснения из книги Вандевурда/Джосаттиса еще больше запутали... --------------------
Каждый человек по-своему прав, а по-моему нет... |
||||
|
|||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 40 Всего: 173 |
LPBOY
Да я сам фактически методом тыка после курения Стандарта (14.6) дошел -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| nikitao |
|
|||
![]() Кот-программист ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1206 Регистрация: 30.8.2005 Где: Спб Репутация: 1 Всего: 26 |
После таких методов Microsoft и выпускает ОСИ для которых потом довыпускает еще патчей на 300 метров.Также главное чтоб откомпилилось,а че это означает они нема -------------------- Жизнь - печальная штука. |
|||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 40 Всего: 173 |
-------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| LPBOY |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 12.7.2005 Репутация: 20 Всего: 20 |
Void, да ты точно объяснил
Просто я в другом смысле понял слово "специализация". Слишком много у него смыслов... --------------------
Каждый человек по-своему прав, а по-моему нет... |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |