我正试图完成一个之前的问题描述的相同任务:
virtual function call from base class
但是,我的真正问题是:
如果f()是基类中的构造函数,那么会调用哪个g()?我不知道我是否做错了,但在我的程序中似乎是相反的。
使用前面问题中相同的变量,一个展示这种行为的代码如下:
Class Base
{
Base(){g();};
virtual void g(){//Do some Base related code;}
};
Class Derived : public Base
{
Derived(){};
virtual void g(){//Do some Derived related code};
};
int main()
{
Derived newDerived;
return 0;
}
更新:
感谢Naveen。
他给了我一个页面,其中包含有关此主题的所有相关信息。
我会在这里提供链接:
parashift.com/c++-faq-lite/strange-inheritance.html#faq-23.6