Mam plik Complex.h
#ifndef COMPLEX_COMPLEX_H_
#define COMPLEX_COMPLEX_H_
template<typename T>class Complex
{
private:
T real;
T imaginary;
public:
Complex();
Complex(T real, T imaginary);
T getModules(void);
~Complex();
};
#endif /* COMPLEX_COMPLEX_H_ */
Complex.cpp
#include <cmath>
#include "Complex.h"
template <typename T>Complex<T>::Complex()
{
}
template <typename T> Complex<T>::Complex(T real, T imaginary)
{
this->real = real;
this->imaginary = imaginary;
}
template <typename T> T Complex<T>::getModules()
{
return sqr(real*real + imaginary*imaginary);
}
template <typename T> Complex<T>::~Complex()
{
}
main.cpp
#include <iostream>
#include "Complex.h"
using namespace std;
int main()
{
Complex <double> c1(7.0, 8.0);
return 0;
}
W linii tworzenia obiektu widzę następujący błąd kompilacji:
undefined reference to `Complex<double>::Complex(double, double)
undefined reference to `Complex<int>::~Complex()
Na prawdę nie wiem gdzie może być problem?