C++。用类模板实现2个数相加。error C2679: binary '<<' : no opera~~~

error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'class jf<int>' (or there is no acceptable conversion)
执行 cl.exe 时出错.

#include<iostream>
using namespace std;
template <class numtype>
class jf
{private:
numtype x,y;
public:
jf(numtype a,numtype b):x(a),y(b){}
jf<numtype> plus();
};
template <class numtype>
jf<numtype> jf<numtype>::plus()
{return(x+y);}
int main()
{jf<int> j1(3,4);
cout<<"x+y="<<j1.plus();
return 0;
}

改成numtype plus();追问

为什么要这样改呢?不太懂。

追答

jf类的plus方法不是要返回x+y吗,类型是numtype

温馨提示:内容为网友见解,仅供参考
无其他回答

...模板实现2个数相加。error C2679: binary '<<' : no opera...
改成numtype plus();

C++语法高手进
0. 编译C 程序时,编译器自动定义了一个预处理名字__cplusplus,而编译标准C时,自动定义名字__STDC__。另外几个比较有用的预定义名字是__LINE__(文件的当前编译行数),__FILE__(当前被编译的文件名字),__DATE__(编译日期)和__TIME__(编译时间)。1. C库头文件的C 名字总是以字母C开头,后面去掉后缀.h...

相似回答
大家正在搜