link2001错误,附头文件和错误信息!

lj_vbplayer lj_vbplayer 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
小弟做了一个简单的矩阵算法,编译完源文件后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.

多谢!
...全文

相关推荐

评论 3
收藏 已收藏
分享
返回顶部
lj_vbplayer
C++ 语言 65,214 成员 250,514 内容