有一个c ++程序:
getElementById
并输出:
# include <iostream>
using namespace std;
class base
{
public:
base()
{
cout<<"base"<<endl;
f();
}
virtual void f() {
cout<<"base f"<<endl;
}
};
class derive: public base
{
public:
derive()
{
cout<<"derive"<<endl;
f();
}
void f() {
cout<<"derive f"<<endl;
}
};
int main()
{
derive d;
return 1;
}
我想知道为什么会出现基数?
我在基地的问题扩展到:
base
base f
derive
derive f
但这应该指出为什么基本f打印出来?
答案 0 :(得分:0)
在构造期间,在基类构造函数中,对象的实际类型为base
,即使它后来继续变为derived
。在破坏期间也是如此,顺便说一下,您还可以使用typeid
来验证类型。