重载c++的<<操作符

来源:互联网 发布:.域名的续费是怎么回事 编辑:程序博客网 时间:2024/05/21 09:55

今天有道题需要重载"<<"运算,对对象进行一些计算。

一开始认为cout是一个类,"<<"在cout进行过定义,经过一番操作后。。显然失败。

后来得知<<是一种独立于cout的操作符,我对它进行了如下定义:

void operator<<(Rectangle &p){    cout<<(p.x2-p.x1)*(p.y2-p.y1);}

然后又悲剧了……提示必须有2个参数....原来这是<<的规定,第一个参数是输入输出流。

cout是ostream流对象的一个引用

这样写是正确的

void operator<<(ostream& os,Rectangle &p){    os<<(p.x2-p.x1)*(p.y2-p.y1);}


0 0