来自Essential C++: 4.10 提供 iostream 运算符的类实例
通常,我们希望读取和写入类的对象。例如,要显示我们的 trian 类对象,我们希望能够编写
cout << train << endl;
为了支持这一点,我们必须提供输出运算符的重载实例:
ostream& operator<< (ostream &os, const Triangular &rhs)
{
os << "(" << rhs.beg_pos() << "," << rhs.length() << ")";
rhs.display(rhs.length(), rhs.beg_pos(), os);
return os;
}
我们返回传递给函数的相同 ostream 对象。这允许连接多个输出运算符。这两个对象都是通过引用传递的。ostream 操作数未声明为 const,因为每个输出操作都会修改 ostream 对象的内部状态。
我有点困惑为什么不能将 ostream 操作数声明为 const。如果输出运算符声明如下:
const ostream& operator<< (const ostream &os, const Triangular &rhs)
上面的声明有问题吗?
谢谢