如何覆盖||在c ++中

时间:2018-06-05 23:31:50

标签: c++ operator-overloading override overloading

我如何覆盖||以cout某事?我试过这些,但它不起作用

在main中:

obj || 1;
课堂上的

ostream& MyClass::operator||(ostream & i)
{
    if (i > 0) 
    { 
        cout << i;
    }
    else 
    {

    } 
    return *this;
}

1 个答案:

答案 0 :(得分:3)

您正在宣布您的班级operator||错误。

您的main代码未传入ostream对象,而是传入整数,因此operator需要输入一个整数作为输入,例如:

class MyClass
{
//...
public:
    MyClass& operator||(int i);
//...
};

MyClass& MyClass::operator||(int i)
{
    if (i > 0)
    {
        cout << i;
    }
    else
    {
        //...
    }
    return *this;
}

Live Demo