c++错误汇总01

class Complex
{
public:
    friend ostream& operator<<(ostream &out, Complex &c3);
    Complex(T a = 0, T b = 0);
    void PrintfComplex();
    Complex operator+(Complex &c);
    Complex operator-(Complex &c);
private:
    T a;
    T b;
};


错误    1    error LNK2019: 无法解析的外部符号 "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class Complex<int> &)" (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@AAV?$Complex@H@@@Z),该符号在函数 _main 中被引用    D:\HQ\templatecomplex\templatecomplex\classtemplate.obj    templatecomplex

问题本质:

模板是两次编译的,第一次生成的函数头和第二次生成的函数头不一样

错误处理:

class Complex
{
public:
    friend ostream& operator<<<T>(ostream &out, Complex &c3);
    Complex(T a = 0, T b = 0);
    void PrintfComplex();
    Complex operator+(Complex &c);
    Complex operator-(Complex &c);
private:
    T a;
    T b;
};

添加红色位置内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值