首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序 #include using namespace std; class AA{ char c; public: AA(char ch):c(ch){ cout
有如下程序 #include using namespace std; class AA{ char c; public: AA(char ch):c(ch){ cout
admin
2021-02-22
30
问题
有如下程序
#include
using namespace std;
class AA{
char c;
public:
AA(char ch):c(ch){ cout<
~AA(){ cout<<"a"; }
};
class BB{
AA m1;
AA m2;
public:
BB(): m2(’p’),m1(’q’){ cout<<"B"; }
~BB(){ cout<<"b"; }
};
int main(){
BB bb;
return 0;
}
运行这个程序的输出是
选项
A、pgBaab
B、pgBbaa
C、qpBaab
D、qpBbaa
答案
D
解析
构造函数初始化列表仅指定用于初始化成员的值,不指定这些初始化执行的次序,成员初始化的次序是类定义中声明成员的次序,成员初始化完成后执行构造函数的函数体;所以程序中在创建BB对象时,首先初始化m1,再初始化m2,由于m1、m2都是AA对象,且有实参q、p,所以调用构造函数AA(char ch),用ch初始化成员c后输出成员c的值,即输出’q’、’p’,再执行类BB的函数体,输出’B’;
程序执行结束时,系统会自动调用类的析构函数清理自己的成员,析构函数工作过程:1、执行析构函数的函数体;2、如果该类中拥有类对象成员,且类对象有析构函数,则以类对象成员声明次序的相反顺序调用其析构函数,销毁类对象成员;3、按原来构造顺序的相反顺序向上依次调用基类的析构函数。所以程序运行结束时,首先调用BB的析构函数并执行函数体,输出"b";然后调用m2的析构函数,销毁m2成员,输出’a’,再调用m1的析构函数,销毁m1成员,输出’a’;综上所述,程序运行的输出是:"qpBbaa";答案为D。
转载请注明原文地址:https://kaotiyun.com/show/Rbfp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
定义无符号整数类为UInt,下面可以作为类、UInt实例化值的是
两个或两个以上模块之间关联的紧密程度称为
在软件设计中,不属于过程设计工具的是
下列叙述中正确的是()。
设数据结构B=(D,R),其中D={a,b,c,d,e,f}R={(f,A),(d,B),(e,D),(c,e),(a,C)}该数据结构为()。
下面对静态数据成员的描述中,正确的是()。
数据库管理系统是()。
请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中定义了MyString类,一个用于表示字符串的类。成员函数reverse的功能是将字符串进行“反转”。例如,将字符串ABCDEF“反转”后,得到字符串FEDCBA;将字符串ABC
数据库技术的根本目标是要解决数据的
在下列枚举符号中,用来定位文件开始位置的方式是
随机试题
关于钢化玻璃特征的说法,正确的是()。
兴趣的品质有哪些?
结核性肉芽肿形成是结核的主要病理基础,在此过程中起主要作用的细胞是
猫禁用的饵热镇痛抗炎药物是
软聚氯乙烯塑料衬里施工中,注意事项错误的是()。
某省地级市人民政府为了制定本市医疗改革发展规划,需由市发展改革委员会、卫生计生局和统计局共同组织开展专项的统计调查,调查对象为国有医疗机构、民营机构和患者。请根据上述材料回答下列问题:[2014年中级真题]在组织开展该项统计调查中,如果发现调
组织发展方法中的人文技术包括()。
作为国际金融市场的创新,BOT、TOT等项目融资已经成为大型工程项目筹措资金的新方式。20世纪80年代中期项目融资被介绍到我国,并在一些大型的水力电力项目中,得到成功运用,为基础设施建设利用项目融资方式提供了丰富经验。但是,由于历史欠账多,政府财力有限,许
如果感知质量高于认知质量,则可能出现()。
WhatdifferencesaretherebetweenBritishEnglishandAmericanEnglish?Thedifferencesinvolvegrammar,______,etc.Whatd
最新回复
(
0
)