我在C++继承方面遇到了问题。
我有一个类层次结构:
class A {
public:
virtual void onFoo() {}
virtual void onFoo(int i) {}
};
class B : public A {
public:
virtual void onFoo(int i) {}
};
class C : public B {
};
int main() {
C* c = new C();
c->onFoo(); //Compile error - doesn't exist
}
我的问题是:为什么这个不能编译?我的理解是C应该从A继承两个onFoo函数-事实上,如果你在B中删除onFoo的重新定义,这就会编译-但是g++给出一个错误,C没有onFoo()函数。
https://stackoverflow.com/questions/6727087
复制相似问题