关于输出运算符重载的问题

来源:互联网  时间:2016/8/21 16:37:06

关于网友提出的“ 关于输出运算符重载的问题”问题疑问,本网通过在网上对“ 关于输出运算符重载的问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 关于输出运算符重载的问题
描述:

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)
{
ex.print(os);
return os;
}
template class Array;
void main()
{
Example2<> *> ex1;
Example2 sa(1024),sb;
sa=sb;
Example2 exs("abc");
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<><>,class std::allocator > >' to 'class Example2
<><>,class std::allocator > > &'
        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<> > &__cdecl operator <<(class std::basic_ostream<>
raits > &,const class Example2<><>,class std::allocator > > &)' being compiled
Error executing cl.exe.
test.exe - 1 error(s), 0 warning(s)

上一篇用c编程,怎么在客户区添加一个按钮
下一篇操作系统启动的时候,是从哪个哪个头的哪个磁道的那个扇区开始读的。
明星图片
相关文章
《 关于输出运算符重载的问题》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)