【发布时间】:2020-05-21 22:37:43
【问题描述】:
#include <iostream>
class B
{
public:
virtual void f() {std::cout<<"Fi";}
virtual void f(int) {std::cout<<"GI";}
};
class A : public B
{
public:
void f(double) {std::cout<<"HI";}
using B::f;//but I want to use only f(), not f(int)
};
int main () {
A a;
a.f();
a.f(10);
return 0;
}
是否可以在派生类 A 中仅取消隐藏 f() 重载?所以 a.f(10);会调用 A::f(double)
【问题讨论】:
-
顺便说一句,我不会将此设置与公共继承一起使用,尽管将继承设为私有不会改变问题
标签: c++ polymorphism overloading