选择题 24.  已知类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
【答案解析】 本题考查的是程序执行的相关知识。p1=&d和p2=&d是p1和p2郁读取d的地址,两次执行的函数都是void foo(){cout<<'c';}这个函数,所以两次输出的内容都是c,所以选择C。