有如下类定义: class XX{ int xx; public: XX():xx(0){cout<<’A’;} XX(int n):xx(n){cout<<’B’;} }; class YY:pub

admin2020-07-30  13

问题 有如下类定义:
    class XX{
    int xx;
    public:
    XX():xx(0){cout<<’A’;}
    XX(int n):xx(n){cout<<’B’;}
    };
    class YY:public XX{
    int yy;
    public:
    YY():yy(0){cout<<yy;}
    YY(int n):XX(n+1),yy(n){cout<<yy;}
    YY(int m,int n):XX(m),yy(n){cout<<yy;}
    };
  下列选项中,输出结果为A0的语句是(    )。

选项 A、YY y1(0,0);
B、YY y2(1);
C、YY y3(0);
D、YY y4;

答案D

解析 考查的是类的继承。选项A的执行结果为B0,建立YY的对象y1,首先调用其构造函数,YY继承于XX所以先调用的为XX的构造函数,根据输入的参数可知输出B,然后执行YY的构造函数输出0;同理,选项B的执行结果为Bl,选项C的执行结果为B0。
转载请注明原文地址:https://kaotiyun.com/show/Mxyp777K
0

最新回复(0)