我应该如何在基本抽象类中调用重载运算符?

时间:2012-03-11 04:32:34

标签: c++ inheritance operator-overloading

所以我有一个Base课程:

class Base
{
public:
    std::ostream& operator << (std::ostream & out, const Base & base);
}

我已经定义了运营商应该做的事情:

ostream& operator << (std::ostream & out, const Base & base)
{
    return out << "output";
}

如果我的Derived类扩展Base并且我希望Derived在调用其插入运算符时与Base做同样的事情,那么什么是最好的这样做的方法?而且最好的意思是不重用代码的最佳方式。

1 个答案:

答案 0 :(得分:0)

如果要在派生类中使用基类方法,请限定调用:

void Derived::func()
{
   //whatever else you want to do first
   return Base::func();
}

除非方法为private,否则您可以访问该方法,因为DerivedBase