有没有办法在基类中单独覆盖具有相同名称(来自两个父项)的函数?
我正在寻找类似的东西:
#include<iostream>
using namespace std;
class A {
public:
virtual void foo() {
cout << "A::Foo" << endl;
}
};
class B {
public:
virtual void foo() {
cout << "B::Foo" << endl;
}
};
class C : public A, public B {
public:
/*virtual void A::foo() {
cout << "C::Foo" << endl;
}*/
};
int main() {
C c;
c.A::foo(); // want to get C::Foo here
}
答案 0 :(得分:1)
不,你不能这样做。如果您想通过class A;
明确的范围解析来避免访问class C;
,请A
私有:
class C : private A, public B {
// ^^^^^^^
public:
};
如果您想更喜欢A
的实施,您可以明确指定要使用的内容:
class C : public A, public B {
public:
using A::foo();
};