【发布时间】:2017-12-16 14:31:22
【问题描述】:
我知道以前有人以某种形式提出过这个问题。但我还是一头雾水。
假设我有两个班级。
class A{
public:
void foo(int a, int b);
protected:
virtual void foo(int a) = 0;
}
class B : public class A{
void foo(int a);
}
现在,如果我想在 B 类中公开 A 类中非虚函数的可见性 .... 我该怎么做? ...换句话说,目前我能够以这种方式调用非虚函数
B b;
b.A::foo(3, 5);
我想避免这种情况^
以及放置这个的解决方案
using A::foo;
in public B 指的是 A 中的虚函数 .... 不是非虚函数 ... 所以我认为这不是解决方案。
【问题讨论】:
-
using A::foo;指 A 中的所有 foo。为一个函数选择其他名称。 -
修复您的设计。对 2 个不同的函数及其类型使用相同的名称是这里的真正问题。
标签: c++ c++11 inheritance derived-class abstract-base-class