Я использую Code :: Blocks для создания моего проекта, который содержит три файла: main.cpp
, TimeSeries.cpp
, TimeSeries.h
. TimeSeries.h
предоставляет объявления для TimeSeries
класса следующим образом:Неопределенная ссылка на ClassName :: ClassName
template<class XType, class YType> class TimeSeries {
public:
TimeSeries(void);
~TimeSeries(void);
};
Тогда TimeSeries.cpp
содержит: #include "TimeSeries.h"
template<class XType, class YType>
TimeSeries<XType, YType>::TimeSeries(void) {
}
template<class XType, class YType>
TimeSeries<XType, YType>::~TimeSeries(void) {
}
И, наконец, main.cpp
содержит
#include "TimeSeries.h"
typedef TimeSeries<float, float> FTimeSeries;
int main(int argc, char** argv) {
FTimeSeries input_data;
return 0;
}
При строительстве с C :: B, я получаю следующую ошибку:
undefined reference to `TimeSeries<float, float>::TimeSeries()'
Что я могу сделать?
Thanks,
CFP.
Спасибо за ваш исчерпывающий ответ! –