我在虚拟职能和参考方面有问题。 当我试图准备面谈时,这从一片迷惑中解。 我只看一看问题,但看不到确切的情况。
该法典规定:
class A{
public:
virtual void foo() {cout << "A::foo" << endl;}
};
class B: public A{
public:
void foo() {cout << "B::foo" << endl;}
};
class C: public B{
public:
void foo() {cout << "C::foo" << endl;}
};
int main(void){
C c;
B *q;
q = &c; q->foo();
return 0;
}
我认为产出为B:foo,但答案实际上是C:foo。 谁能告诉我,为什么表胜者选择执行B? 增 编