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

admin2020-07-30  23

问题 有如下类定义:
    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+l), yy(n) {cout<<yy;)
    YY(int m, int n):XX(m), yy(n) {cout<<yy;}
    };
    下列选项中,输出结果为AO的语句是(     )。

选项 A、YYy1(0,0);
B、YYy2(1);
C、YYy3(0);
D、YYy4;

答案D

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

最新回复(0)