首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序 #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
2015-07-22
28
问题
有如下程序
#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/EMNp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
执行下列程序段,结果是#include(iostream.h>voidmain(){intx=40;chary=‘C’;intn;n=(x&0xff)&&(y>‘B’);cout
关键字ASC和DESC分别表示【】的含义。
如果一个模板声明时有类型形参表,则多个参数之间必须使用______隔开,每个参数都必须重复使用关键字______。
下列有关数据库的描述,正确的是
关于纯虚函数,下列表述正确的是()。
假设a、b均是整型变量,则表达式a=2,b=5,a++,b++,a+b值为【】。
以下对C++语言函数的有关描述中,正确的是
关于虚函数,下列表述正确的是()。
设树T的度为4,其中度为1,2,3,4的节点个数分别为4,2,1,1。则T中叶子节点数为()。
随机试题
判断患者肺结核具有活动期最有价值的结果是
以葡聚糖凝胶为固定相的柱色谱作用机制属于()。
女性骨盆的特点是()
下列针对承运人的要求中,哪项不能得到支持?()
上市公司股东大会可审议批准()担保事项。
下列各项中,属于资产负债表中“非流动负债”项目的是()。
2×17年12月20日,A政府单位购进一台不需要安装的设备,设备价款为700万元,另发生运杂费2万元,专业人员服务费20万元,款项均以银行存款支付;没有发生其他相关税费。该设备于当日投入使用,预计使用年限为10年,采用直线法计提折旧。不考虑其他因素,该项固
在班级管理中,评价一个班级的好坏的主要依据是()。
关于中国书画艺术,下列说法错误的是:
试述海地革命胜利的原因及历史意义。
最新回复
(
0
)