25 / 25 / 5
Регистрация: 21.04.2011
Сообщений: 141
|
|||||||||||
1 | |||||||||||
Шаблон класса complex. Ошибка undefined reference to `complex<double>::SetRe(double)'01.08.2013, 22:19. Показов 1854. Ответов 5
Метки нет (Все метки)
Есть такой файл complex.h
g++ complex.o main.o -o prog -pipe main.o: In function `main': main.cpp:(.text+0x83): undefined reference to `complex<double>::SetRe(double)' Я так понимаю, что компилятор не может найти определение функции SetRe() это может быть из-за того что я неправильно написал определение в complex.cpp но ошибки я не вижу. Подскажите в чем проблема?
0
|
01.08.2013, 22:19 | |
Ответы с готовыми решениями:
5
Перегрузка operator*(double, complex) В классе Complex<double> получение действительной и мнимой частей Шаблон класса. Ошибка `undefined reference` Как заполнить массив комплексными числами, не используя стандартный класс std::complex<double>? |
15 / 15 / 3
Регистрация: 04.07.2013
Сообщений: 76
|
|
01.08.2013, 22:20 | 2 |
Объявление и реализацию шаблонного класса нужно писать в одном .hpp файле.
1
|
25 / 25 / 5
Регистрация: 21.04.2011
Сообщений: 141
|
|
01.08.2013, 22:23 [ТС] | 4 |
А это обязательно? а то как то странно получается для обычных классов два файла .cpp .h а для шаблонов только один
0
|
15 / 15 / 3
Регистрация: 04.07.2013
Сообщений: 76
|
|
01.08.2013, 22:31 | 5 |
MAnton, в случае с шаблонами - обязательно.
0
|
Неэпический
|
|||||||||||
01.08.2013, 22:43 | 6 | ||||||||||
А это и не класс - это только шаблон класса.
Как я уже говорил, чертеж дома есть, но дома то нет, пока его не построят. Добавлено через 1 минуту можете хоть на 20 разделить, только поните, что код шаблона должен быть доступен в том месте, где будет инстанцирование complex.h
1
|
01.08.2013, 22:43 | |
01.08.2013, 22:43 | |
Помогаю со студенческими работами здесь
6
Как правильно сделать шаблон класса complex Ошибка: error LNK2001: unresolved external symbol "double __cdecl Akk(double,double,double)" Undefined reference to `Vector::SetElem(int, double)'| Ошибки error C2296: -: недопустимо, левый операнд имеет тип "double (__cdecl *)(double,double,double Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |