单选题 已知类Base、Middle和Derived的定义如下:
class Base{
public:
virtual void foo(){cout<<"a";}
};
class Middle: public Base{
public:
void foo(){cout<<"b";}
};
class Derived: public Middle{
public:
void foo(){cout<<"c";}
};
且有如下程序段:
Base *p1;
Middle *p2;
Derived d;
p1=&d;
p1->foo();
p2=&d;
p2->foo();
运行这个程序段的输出是
【正确答案】 C
【答案解析】