template, linux, qt, Особенность использования шаблонов |
Здравствуйте, гость ( Вход | Регистрация )
template, linux, qt, Особенность использования шаблонов |
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 есть грабля с шаблонами см. Academic Solutions to Academic Problems
|
|
|
AD |
6.2.2009, 11:56
Сообщение
#5
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Да действительно вопрос по сути не по qt..Но я приложение с использованием qt пишу, заодно хотелось узнать тонкости работы шаблонов и qt классов. Будет вопрос по qt, зададите в этом разделе. А эту тему лучше перенести! Но вопрос хороший. Поищите в интернете, уверен, что найдете очень много подсказок. Просто это действительно долго объяснять как делается, да я уже и не помню! |
|
|
fantom |
6.2.2009, 13:17
Сообщение
#6
|
Студент Группа: Участник Сообщений: 47 Регистрация: 29.1.2009 Пользователь №: 515 Спасибо сказали: 1 раз(а) Репутация: 1 |
А эта проблема впринципе решается? Или мне всю реализацию шаблонных классов в h файле описывать?
Сам отвечаю на свой вопрос. Нашел в другом форуме.Решение называется external template. К сожалению, эта часть стандарта не реализована С++ большинством компиляторов, по этому так писать не принято. Полное описание проблемы и её решения на английском языке Вы можете прочесть тут - http://www.codeguru.com/forum/showthread.php?t=250284 Видимо придется писать все в h файле. |
|
|
void* |
8.2.2009, 14:43
Сообщение
#7
|
Программист-самоучка Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: 3 |
просто у компиляторов С++ есть такая особенность - нельзя выносить реализацию шаблонов в .cpp-файлы
Сообщение отредактировал void* - 8.2.2009, 14:45 |
|
|
Текстовая версия | Сейчас: 4.10.2024, 18:00 |