单项选择题
已知类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();
运行这个程序段的输出是______。
A.aa
B.bb
C.cc
D.ab