c ++ множественные ошибки определения с использованием шаблонов

Я новичок в программировании на основе шаблонов, и у меня есть эта ошибка при компиляции моего проекта

error : multiple definition of Expr::Chapter_2<double>::get_pointer()
objectfile.o:/Filename.h:42 first defined here.

Данный код полностью находится внутри заголовочного файла .h. Любые указатели для решения этой проблемы высоко ценится.

код:

template< typename T >
class Chapter_2{

-------
public :
inline T* get_pointer();
-------
};

// Function definitions
template< typename T >
T* Chapter_2<T>::get_pointer() {
------code------
}

// double specialization of template
template<>
double* Chapter_2<double>::get_pointer() {
------code------
}

0

Решение

Возможные причины:

1) Если ваш заголовок не начинается с #ifndef и вы включили тот же заголовок дважды или больше.

2) В CPP файл, в который вы включаете заголовок, содержащий шаблон, если вы снова определили методы (несколько определений, т.е. в cpp, а также в .h). Реализация методов в шаблоне должна быть определена там же один раз.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]