单选题
1分
有如下程序:
#include<iostream>
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;
}
运行时的输出结果是( )。
有如下程序: #include<iostream> using namespace&n...
有如下程序:
#include<iostream>
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;
}
运行时的输出结果是( )。
参考答案: D
参考解析: 【解析】main()函数中构造两个Iphone对象:
①首先构造对象Ellen,调用构造函数:Iphone(int n),传入参数6,在执行初始化列表时,首先调用基类Apple的默认构造函数,输出字符’A’,然后初始化派生类中的ver为6,再执行派生类构造函数的函数体:输出6。
②接着构造对象Jack,调用默认构造函数:Iphone(),执行初始化列表时,首先调用基类Apple的默认构造函数,输出字符’A’,然后初始化派生类中的ver为4,再执行派生类默认构造函数的函数体:输出’I’。
综上,程序输出:A6AI。本题答案为D选项。