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;
}
为什么要这样改呢?不太懂。
追答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...