为什么我的编译器在我重载递增运算符

时间:2015-06-28 05:45:36

标签: c++ oop

我在运算符重载时遇到问题,当我编译程序时它给出了一个错误,以下是代码:

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;”

我的问题是为什么编译器会给我一个错误,虽然我的语法似乎很好?

1 个答案:

答案 0 :(得分:2)

两个问题:

  1. 从重载的运算符返回*。

  2. 如果您想使用&#34; cout&lt;&lt;打印您的对象&#34;,您需要重载运算符&lt;&lt;,否则单独打印每个成员。