【发布时间】:2011-09-27 12:48:16
【问题描述】:
我正在尝试完成上一个问题中描述的相同操作:
virtual function call from base class
但是,我真正的问题是:
如果 f() 是 Base 类中的构造函数怎么办?哪个 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;
}
更新:
感谢纳文。
他为我提供了一个页面,其中包含有关该主题的所有相关信息。
我会让你知道这里的链接:
parashift.com/c++-faq-lite/strange-inheritance.html#faq-23.6
【问题讨论】:
-
你能展示一些表现出这种行为的示例代码吗?
标签: c++