![]() |
|
Модераторы: bsa |
![]()
|
|
| OlegSK |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 17.7.2010 Репутация: нет Всего: нет |
Читаю книгу Шилдта, "Полный справочник по C++" (4-е издание) и сейчас закончил чтение главы посвященной шаблонам. К сожалению, Шилдт как-то скомкал описание явно заданных специализаций для шаблонных классов. В частности, он не показал как делать определение методов явно заданной специализации класса вне объявления класса-специализации. Помогите, плиз, разобраться с этим... Например, есть следующий шаблонный класс:
Теперь требуется сделать явную специализацию этого класса для работы с типом int. С объявлением класса специализации проблем не возникает, т.к. Шилдт показал как это можно сделать:
Остается непонятным синтаксис определения вне объявления класса-специализации методов push и pop. Пытался разобраться с этим методом тыка, но что-то не получилось, - компилятор постоянно ругается и видимо не понимает что я от него хочу. Покажите, плиз, как определять методы класса-специализации вне объявления этого класса... З.Ы: Не обращайте внимание на то, что в приведенном коде по сути не требуется явное задание класса-специализации для типа int, т.к. функциональность у них тут по сути одинаковая. Это сейчас не важно. Это сообщение отредактировал(а) OlegSK - 7.2.2011, 21:28 |
||||
|
|||||
| volatile |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
Во первых точку с запятой после класса надо ставить!
В вашем случае:
И его в .cpp (не в .h) Это сообщение отредактировал(а) volatile - 7.2.2011, 23:32 |
||||
|
|||||
| OlegSK |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 17.7.2010 Репутация: нет Всего: нет |
volatile, благодарю за помощь! Получилось! Я и сам пробовал так делать, но не догадался не использовать template, и перед определением методов класса-специализации указывал template<> из-за которого и ругался компилятор...
Сорри, не заметил когда набивал код... В коде приложения этой ошибки нет. Это сообщение отредактировал(а) OlegSK - 8.2.2011, 00:56 |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |