【发布时间】:2010-09-28 16:26:08
【问题描述】:
假设我们有:
Class Base
{
virtual void f(){g();};
virtual void g(){//Do some Base related code;}
};
Class Derived : public Base
{
virtual void f(){Base::f();};
virtual void g(){//Do some Derived related code};
};
int main()
{
Base *pBase = new Derived;
pBase->f();
return 0;
}
将从Base::f() 调用哪个g()? Base::g() 或 Derived::g()?
谢谢...
【问题讨论】:
-
请使用带有 1/0'ers 的按钮来很好地格式化您的代码。 (我编辑了它,但 OP 回滚了它。所以我自己不会再编辑它)
-
请注意您提供了一个内存泄漏示例。您在 main 中有一个忘记删除。
标签: c++ polymorphism virtual