Пишу лабу с использованием шаблонов (шаблонного класса, если точнее) на C++. Если разбиваю код только на два файла (main.h и main.cpp соответственно) и описываю реализацию шаблонного класса тут же (в main.cpp) - то все в порядке. Как только выношу реализацию методов класса - в какой-нибудь smth.cpp - программа перестает собираться, на каждый вызов метода шаблонного класса из main.cpp линкер выдает ошибку типа:
obj\Release\main.o:main.cpp:(.text+0xba)||undefined reference to `List<Student>::printList() const'|
В качестве IDE использую Code::Blocks Nightly Build.
Пробовал под виндой на MSVS 2008 Beta 2 - так же выскакивают ошибки подобного вида.
В чем проблема? Разве оба файла из проекта (main.cpp и реализация методов) не линкуются вместе? Как ее решить?
Решено: Проблема с шаблонами (программа не линкуется из нескольких файлов)
Модератор: Модераторы разделов
-
- Сообщения: 5
- ОС: Windows XP, Debian Etch
-
- Сообщения: 5
- ОС: Windows XP, Debian Etch
Re: Решено: Проблема с шаблонами
Прошу прощения, закройте тему - я уже нашел решение на koders.com.
Оказывается просто забыл написать перед реализацией код типа:
template class List<Student>;
)
Оказывается просто забыл написать перед реализацией код типа:
template class List<Student>;
)