Dotcpp  /  试卷列表  /  C++  /  题目 7732

已知类Base、Middle和Derived的定义如下

已知类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的地址,d是Derived类的对象,所以 两次执行的函数都是void foo() cout<<‘c’; ,两次输出的内容都是c。

题目信息

题号:7732
题型:单选题
知识点:C++
难度:普通