我在运算符重载时遇到问题,当我编译程序时它给出了一个错误,以下是代码:
class box
{
int length;
int width;
int volume;
public:
box():length(50),width(30)
{
}
box& operator++()
{
volume++;
width++;
length++;
}
};
int main()
{
box b1;
cout<<++b1;
}
它给我的错误是:
“不匹配运营商&lt;&lt;”
我的问题是为什么编译器会给我一个错误,虽然我的语法似乎很好?
答案 0 :(得分:2)
两个问题:
从重载的运算符返回*。
如果您想使用&#34; cout&lt;&lt;打印您的对象&#34;,您需要重载运算符&lt;&lt;,否则单独打印每个成员。