link2001错误,附头文件和错误信息!
小弟做了一个简单的矩阵算法,编译完源文件后link出问题。好像是找不到函数,但是以下函数都有定义,也在main中include了,不知道错在哪里,恳请各位大虾指点!万分感激!
头文件如下:
#ifndef _COMPLEX_H_
#define _COMPLEX_H_
#include <iostream>
using std::istream;
using std::ostream;
template <class D> class complex
{
friend ostream &operator<<(ostream &, const complex<class D> &);
friend istream &operator>>(istream &, complex<class D> &);
public:
complex (D=0.0, D=0.0); //constructor
complex operator+(const complex &) const; //plus
complex operator-(const complex &) const; //minus
complex operator*(const complex &) const; //multiplication
complex operator/(const complex &) const; //division
complex &operator=(const complex &); //overload assign
D real() const; //get real part
D imag() const; //get imaginary part
complex & conj(); //get conjugate
bool operator==(const complex &); //equal
bool operator!=(const complex &); //unequal
void Print() const; //output
private:
D rl; //real part
D im; //imaginary part
};
#endif
错误信息如下:
fnMatrixInvert.obj : error LNK2001: unresolved external symbol "public: class complex<double> __thiscall complex<double>::operator-(class complex<double> const &)const " (??G?$complex@N@@QBE?AV0@ABV0@@Z)
fnMatrixInvert.obj : error LNK2001: unresolved external symbol "public: class complex<double> __thiscall complex<double>::operator+(class complex<double> const &)const " (??H?$complex@N@@QBE?AV0@ABV0@@Z)
fnMatrixInvert.obj : error LNK2001: unresolved external symbol "public: double __thiscall complex<double>::imag(void)const " (?imag@?$complex@N@@QBENXZ)
fnMatrixInvert.obj : error LNK2001: unresolved external symbol "public: class complex<double> __thiscall complex<double>::operator/(class complex<double> const &)const " (??K?$complex@N@@QBE?AV0@ABV0@@Z)
fnMatrixInvert.obj : error LNK2001: unresolved external symbol "public: double __thiscall complex<double>::real(void)const " (?real@?$complex@N@@QBENXZ)
fnMatrixInvert.obj : error LNK2001: unresolved external symbol "public: class complex<double> __thiscall complex<double>::operator*(class complex<double> const &)const " (??D?$complex@N@@QBE?AV0@ABV0@@Z)
fnMatrixInvert.obj : error LNK2001: unresolved external symbol "public: class complex<double> & __thiscall complex<double>::conj(void)" (?conj@?$complex@N@@QAEAAV1@XZ)
fnMatrixInvert.obj : error LNK2001: unresolved external symbol "public: class complex<double> & __thiscall complex<double>::operator=(class complex<double> const &)" (??4?$complex@N@@QAEAAV0@ABV0@@Z)
fnMatrixInvert.obj : error LNK2001: unresolved external symbol "public: __thiscall complex<double>::complex<double>(double,double)" (??0?$complex@N@@QAE@NN@Z)
Debug/InverseMatrix.exe : fatal error LNK1120: 9 unresolved externals
Error executing link.exe.
多谢!