关于网友提出的“ 关于输出运算符重载的问题”问题疑问,本网通过在网上对“ 关于输出运算符重载的问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 关于输出运算符重载的问题描述:
C++Primer 练习2.15程序如下,
#include
#include
using namespace std;
template
class Example2
{
public:
explicit Example2(elemType val=0):_val(val){}
bool min(elemType value) {return _val<>
void value(elemType new_val) {_val=new_val;}
void print(ostream &os) {os<<_val;}
private:
elemType _val;
};
template
ostream& operator<<(ostream &os,const Example2
{
ex.print(os);
return os;
}
template
void main()
{
Example2<>
Example2
sa=sb;
Example2
cout<<"exs: "<<>
}
我想执行最后一句:cout<<"exs: "<<>
为何编译出现如下错误:
D:\Data\sams\IT Training\C++Primer\test\test\test.cpp(20) : error C2662: 'print' : cannot convert 'this' pointer from 'const class Example2<><>
<><>
Conversion loses qualifiers
D:\Data\sams\IT Training\C++Primer\test\test\test.cpp(32) : see reference to function template instantiation 'class std::basic_ostream<>
raits
Error executing cl.exe.
test.exe - 1 error(s), 0 warning(s)