Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
fantom |
5.2.2009, 19:18
Сообщение
#1
|
|
Студент ![]() Группа: Участник Сообщений: 47 Регистрация: 29.1.2009 Пользователь №: 515 Спасибо сказали: 1 раз(а) Репутация: 1
|
Пишу простенький пример
test.h test.cpp main.cpp Вываливается ошибка main.cpp:112: undefined reference to `Test<int>::Test()' Причем если я убираю cpp файл, а описываю реализацию методов в h файле все нормально. В чем дело? |
|
|
|
|
AD |
5.2.2009, 19:35
Сообщение
#2
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17
|
Почитай литературу. Объяснять долго. Но суть в том, что должен быть *.inl, *.h, *.cpp файлы. К Qt отношения это не имеет. Это либо к общим вопросам C++, либо к компиляторам!
|
|
|
|
|
fantom |
6.2.2009, 11:47
Сообщение
#3
|
|
Студент ![]() Группа: Участник Сообщений: 47 Регистрация: 29.1.2009 Пользователь №: 515 Спасибо сказали: 1 раз(а) Репутация: 1
|
Да действительно вопрос по сути не по qt..Но я приложение с использованием qt пишу, заодно хотелось узнать тонкости работы шаблонов и qt классов.
|
|
|
|
|
Litkevich Yuriy |
6.2.2009, 11:54
Сообщение
#4
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
fantom, у Qt есть грабля с шаблонами см. Link
|
|
|
|
|
AD |
6.2.2009, 11:56
Сообщение
#5
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17
|
Цитата(fantom @ 6.2.2009, 11:47) Link Да действительно вопрос по сути не по qt..Но я приложение с использованием qt пишу, заодно хотелось узнать тонкости работы шаблонов и qt классов. Будет вопрос по qt, зададите в этом разделе. А эту тему лучше перенести! |
|
|
|
|
fantom |
6.2.2009, 13:17
Сообщение
#6
|
|
Студент ![]() Группа: Участник Сообщений: 47 Регистрация: 29.1.2009 Пользователь №: 515 Спасибо сказали: 1 раз(а) Репутация: 1
|
А эта проблема впринципе решается? Или мне всю реализацию шаблонных классов в h файле описывать?
Сам отвечаю на свой вопрос. Нашел в другом форуме.Решение называется external template. К сожалению, эта часть стандарта не реализована С++ большинством компиляторов, по этому так писать не принято. Полное описание проблемы и её решения на английском языке Вы можете прочесть тут - Link Видимо придется писать все в h файле. |
|
|
|
|
void* |
8.2.2009, 14:43
Сообщение
#7
|
![]() Программист-самоучка ![]() ![]() ![]() Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: 3
|
просто у компиляторов С++ есть такая особенность - нельзя выносить реализацию шаблонов в .cpp-файлы
Сообщение отредактировал void* - 8.2.2009, 14:45 |
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 27.12.2025, 13:05 |