我想问一下如何在派生类覆盖函数中调用隐藏的基类运算符函数,下面是我的代码,注释行是问题。
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/