大家看看,这段代码,我这样理解对不对
/////////////////////////////////////////////////////////////////////
#include <iostream>
using namespace std;
class A
{
public:
A(){ doSth(); }
virtual void doSth(){ printf("I am A");}
};
class B : public A
{
public:
virtual void doSth(){ printf("I am B");}
};
int main()
{
A a;
B b;
return 0;
}
//////////////////
I am AI am A
因为子类B在构造时,A先构造,B随后构造.A构造函数调用doSth时,子类B还不存在,所以只能调用本身的doSth