首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序 #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-09-05
17
问题
有如下程序
#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/j7fp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
已知函数FA调用函数FB,若要把这两个函数定义在同一个文件中,则()。
有如下程序:#includeusingnamespacestd;classBase{public:Base(intx=0){cout
下列数据结构中,能够按照“先进后出”原则存取数据的是()。
下列关于构造函数的叙述中,错误的是()。
关于运算符重载,下列表述中正确的是()。
若MyClass为一个类,执行“MyClassa[4],*p[5];”语句时会自动调用该类构造函数的次数是()。
下列选项可以做C++标识符的是()。
下列关于模板的叙述中,错误的是()。
在下列模式中,能够给出数据库物理存储结构与物理存取方法的是()。
有三个关系R、S和T如下:其中关系T由关系R和S通过某种操作得到,该操作为()。
随机试题
横纹肌肉瘤的特点包括
患者,女性,32岁,5天前出现发热、乏力、恶心、食欲不振,查体:巩膜轻度黄染,肝肋下1cm,质软,ALT750U/L,总胆红素55μmol/L,考虑谊病人为“病毒性肝炎”。该病人目前最主要的治疗措施是()
购房者享有房屋所有权的同时,享有所购房屋的部分基地使用权,不属于其理由的是()。
价值工程评价方法的工作步骤一般可概括为
关于地下室、半地下室耐火等级的描述,正确的是:
下列各项关于印花税的纳税环节表述不正确的是()。
外国旅游者希望会见当地亲友,下列说法正确的是()。
下列关于能源的叙述,正确的是()。
①第一本防水平装书还将拥有强大的防伪功能②澳大利亚的银行现在已经使用该项技术来延长纸币的使用寿命,同时减少伪造的风险③英国出版商近日透露,世界上第一本防水平装书有望明年夏天上架销售④书的外面还有一层防撕毁的坚韧的聚合物涂层,整本书的架上寿命可以由此增
在实施过程中,监理单位应针对发现的问题,协调关系和排除矛盾,实行动态进度控制,(52)是不可缺少的手段。
最新回复
(
0
)