有如下程序 #include using namespace std; class Base{ protected: Base(){cout

admin2020-11-11  28

问题 有如下程序
    #include
    using namespace std;
    class Base{  
    protected:
    Base(){cout<<ˊAˊ;}
    Base(char c){cout<    };
    class Derived:public Base{
    public:
    Derived(char C){cout<    };
    int main(){   
    Derived d 1(ˊBˊ);
    return 0;
    }
    执行这个程序屏幕上将显示输出(    )。

选项 A、B
B、BA
C、AB
D、BB

答案C

解析 此题考查的是派生类对象的构造。建立派生类对象时,构造函数的执行顺序是:执行基类的构造函数,调用顺序按照各个基类被被继承时声明的顺序;执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序;执行派生类的构造函数。此题中,在建立派生类Derived的对象d1时会先调用基类Base的构造,调用的是默认构造函数,输出字符‘A’;然后调用自身的构造函数,输出‘B’:故程序的输出结果是:AB。
转载请注明原文地址:https://kaotiyun.com/show/3Syp777K
0

最新回复(0)