![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 19.10.2010
Сообщений: 4
|
![]()
Пытаюсь реализовать шаблон Strategy
в STR.h пишу template<class StrategyType> class Context { public: void Operation(); private: StrategyType TheStrategy; }; в STR.cpp void Context::Operation() { TheStrategy.Algoritm(); } Компилятор выдаёт ошибки: `template<class StrategyType> class Context' used without template parameters STR.cpp /Strategy/src line 13 C/C++ Problem `TheStrategy' was not declared in this scope STR.cpp /Strategy/src line 15 C/C++ Problem Если писать реализацию метода в хэдере, то всё прекрасно работает, но хотелось всю реализацию спихнуть в отдельный файл, а компилятору, видимо, не нравится, что поле не описано в этом файле (ибо замена спецификатора поля на public не даёт результатов). Подскажите, что можно сделать с такой бедой? |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 26.04.2010
Сообщений: 328
|
![]()
метод в хедере делать, а почему - гугль в помощь
![]() |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 26.03.2010
Сообщений: 538
|
![]()
в файле .cpp
Код:
Единственный способ стать умнее - играть с более умным противником.
|
![]() |
![]() |
![]() |
#4 | |
Регистрация: 19.10.2010
Сообщений: 4
|
![]() Цитата:
Так не помогает, то есть те ошибки уходят, но появляется ошибка в основном файле на строчку Context<AStrategy> AS; AS.Operation(); undefined reference to `Context<AStrategy>::Operation()' Strategy.cpp /Strategy/src line 15 C/C++ Problem Хм, нашел в инете, что нельзя в принципе компилировать реализацию шаблона в отдельном модуле, правда датировка серединой прошлого года хм... |
|
![]() |
![]() |
![]() |
#5 | |
C++ hater
Старожил
Регистрация: 19.07.2009
Сообщений: 3,333
|
![]()
2DKOI
Цитата:
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
|
![]() |
![]() |
![]() |
#6 |
Регистрация: 19.10.2010
Сообщений: 4
|
![]()
Понятно ) Значит придется оставить метод в хэдере ) Большое спасибо всем за помощь
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание класса с полем типа TStringList. Ошибка при его заполнении | Son | Общие вопросы Delphi | 8 | 13.04.2010 21:38 |
Пргограмма реализации метода эйлера | Серг87 | Помощь студентам | 0 | 08.02.2010 09:33 |
Ошибка при создании типа | Monte-Kristo | Помощь студентам | 4 | 04.03.2009 19:51 |