64,649
社区成员
发帖
与我相关
我的任务
分享
int main(int argc,char* argv[])
{
Derived d;
Base *pB=&d;
pB->f();
}
Base::Base()
Base()::virt()
Derived:: Derived ()
Derived ()::virt()
/*上述结果出现的原因:由于创建一个派生类对象,所以先调用基类构造函数,那么输出是
Base::Base()
Base()::virt() ,然后调用派生类构造函数,输出结果为Derived:: Derived ()
Derived ()::virt() */
Base::f()
Derived ()::virt()
/*由于f()为基类特有,所以输出有Base::f() ,而virt()为虚函数,此时调用派生类中的virt()*/