我有这两个类:
class Foo
{
virtual void Bar2();
void Bar(){Bar2();};
}
class Foo2 : public Foo
{
void Bar2();
}
在Foo中调用Bar()函数会使用Foo2或Foo中的Bar2函数吗?我希望它能使用Foo2。
答案 0 :(得分:3)
它将使用实例化的任何类型的Bar2
,如下所示:
Foo2 f2;
f2.Bar(); // Foo2::Bar2 will be called
Foo f;
f.Bar(); // Foo::Bar2 will be called
Foo *pf = new Foo2;
pf->Bar(); // Foo2::Bar2 will be called