假设我的课程B
来自课程A
。如果B
覆盖类f
的虚方法A
,那么当我将类B
的实例分配给类{{1}的实例时,此虚方法会发生什么? }}?
最基本的例子:
A
输出:
#include <stdio.h>
class A
{
public:
virtual void f()
{
printf("I am A\n");
}
};
class B : public A
{
public:
virtual void f()
{
printf("I am B\n");
}
};
int main()
{
// Instance of B:
B b;
b.f();
// Reference to A:
A& a_ref = b;
a_ref.f();
// Assignment:
A a = b;
a.f();
return 0;
}
当使用引用时,一切都按预期进行,但是在演员阵容中,我在这里错了。