c++ - 调用 C++ 隐藏运算符函数

标签 c++ inheritance

我想问一下如何在派生类覆盖函数中调用隐藏的基类运算符函数,下面是我的代码,注释行是问题。

class Base{
public:
    virtual bool operator^(Base &b){
        cout << "hehe" << endl;
        return true;
    }
    virtual void fn() = 0;
};

class Dev: public Base{
public:
    virtual bool operator^(Base &b){
        // how to call operator ^ in the Base class here??
        cout << "haha" << endl;
        return false;
    }
    virtual void fn(){}
};

最佳答案

使用运算符(operator)的限定名称。

例如

#include <iostream>

using namespace std;

class Base{
public:
    virtual bool operator^(Base &b){
        cout << "hehe" << endl;
        return true;
    }
    virtual void fn() = 0;
};

class Dev: public Base{
public:
    virtual bool operator^(Base &b){
        Base::operator^( b );
        cout << "haha" << endl;
        return false;
    }
    virtual void fn(){}
};

int main() 
{
    Dev v;
    Base &b = v;

    v ^ b;

    return 0;
}

程序输出为

hehe
haha

关于c++ - 调用 C++ 隐藏运算符函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49324820/

相关文章:

c++ - 条件运算符 : How much flexibility?

关于扩展类的PHP继承问题

Java - 继承和构造函数错误

c++ - 派生类不从基类继承数据成员

javascript - 有人可以用更外行的术语解释什么是 util.inherits 吗?

c++ - IOCP - 发布重叠或读取数据包?

c++ - 再次 double 四舍五入

php - 流交互 As3 -> PHP -> Mysql -> C++

c++ - 使用 PBM_SETPOS 设置位置时 ProgressBar 滞后

java - int 是 Java 中的对象吗?