ITPub博客

首页 > 应用开发 > > 重载运算符

重载运算符

作者:zlh20 时间:2019-09-09 11:27:12 0 删除 编辑

C++模板,重载运算符<<,参照的C++primer,为什么有编译错误呢?

#include<iostream>
using namespace  std;
template<typename T>
class Code;

//友元函数的声明;
template<typename T>
ostream& operator<< (ostream& , Code<T>&);

template<typename T>
class Code
{
public:
    friend ostream& operator << <T>(ostream& out, const Code<T>&code);
    Code() {data=10;}

private:
    T data;
};

//友元函数的实现;
template<typename T>
ostream& operator << (ostream& out, const Code<T>&code)
{
    out << "data: " << code.data << endl;
    return out;
}
int main()
{
    Code<int> d;
    cout<<d<<endl;
    return 0;
}

错误信息:[Error] template-id 'operator<< <int>' for 'std::ostream& operator<<(std::ostream&, const Code<int>&)' does not match any template declaration

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1729/viewspace-3135487/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: void 和return
请登录后发表评论 登录
全部评论

注册时间:2019-04-15

  • 博文量
    117
  • 访问量
    1171