【发布时间】:2017-11-18 04:52:45
【问题描述】:
我有如下<<重载函数:
ostream& operator<<(ostream& output, HW4& rhs)
{
for(int i = 0; i < HW4::size; ++i)
{
output << rhs.array[i] << " ";
}
return output;
}
而且我也有这个后递减重载函数:
HW4 HW4::operator--(int)
{
HW4 temp = *this;
int hold;
for(int i = 0; i < size/2; ++i)
{
hold = array[i];
array[i] = array[size - i - 1];
array[size - i - 1] = hold;
}
return temp;
}
我不明白为什么
cout
除非我将 << 重载函数更改为具有这样的 const 引用参数,否则不会编译
ostream& operator<<(ostream& output, const HW4& rhs)
【问题讨论】:
-
operator--返回一个临时的。临时不能绑定到非常量左值引用。 -
如果
<<改变了rhs的值,你会让很多人感到奇怪。使用const,卢克。
标签: c++ reference operator-overloading constants