这个问题可能以前已经有人回答过,但我找不到相关的解释。
我正在尝试理解C++
中的继承,但是由于我的背景是C#
,我似乎无法理解以下情况的原因:
Foo.h
class Foo {
virtual void DoSomething();
}
class Bar : Foo { }
Bar.cpp
#include "Foo.h"
void Bar::DoSomething()
{
//Compiler error C2509 - member function not declared in 'Bar'
}
由于DoSomething
是一个纯虚函数,那么它不会自动成为Bar
的一部分吗?
如果我有很多不同的类继承自Foo
,我真的需要在每个类中显式声明DoSomething
吗?
C++
中还有哪些构造可以处理这种情况?
Bar
也不应该是抽象的? - dypBar::DoSomething
就是这样做的。 - Rotem