有如下程序: #include<iostream> #include<string> using namespace std; class Apple{ public: Apple(){cout<<’A’;} }; class IPhone:public

admin2021-09-05  21

问题 有如下程序:
#include<iostream>
#include<string>
using namespace std;
class Apple{
public:
Apple(){cout<<’A’;}
};
class IPhone:public Apple{
public:
IPhone():ver(4){cout<<’I’;}
IPhone(int n):ver(n){cout<<n;}
private:
int ver;
};
int main(){
IPhone Ellen(6),Jack;
return 0;
}
运行时的输出结果是(    )。

选项 A、6I
B、A6I
C、AIAI
D、A6AI

答案D

解析 main()函数中构造两个Iphone对象:
①首先构造对象Ellen,调用构造函数:Iphone(intn),传入参数6,在执行初始化列表时,首先调用基类Apple的默认构造函数,输出字符’A’,然后初始化派生类中的ver为6,再执行派生类构造函数的函数体:输出6。
②接着构造对象Jack,调用默认构造函数:Iphone(),执行初始化列表时,首先调用基类Apple的默认构造函数,输出字符’A’,然后初始化派生类中的ver为4,再执行派生类默认构造函数的函数体:输出’I’。
综上,程序输出:A6AI。本题答案为D选项。
转载请注明原文地址:https://kaotiyun.com/show/ZOfp777K
0

最新回复(0)