首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序 #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
39
问题
有如下程序
#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全国计算机二级
相关试题推荐
下列选项中不属于软件生命周期开发阶段任务的是
下面属于白盒测试方法的是
在软件开发中,需求分析阶段产生的主要文档是
有如下程序段:inti=0,j=1;nt&r=i;//①r=j;//②int*p=&i;//③*p=&r;//④其中会产生编译错误的语句是()。
下列语句中,错误的是()。
请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程文件pmj3。本题创建一个小型字符串类,字符串长度不超过100。程序文件包括proj3.h、proj3.cpp、writeToFile.obj。补充完成重载赋值运算符函数,完成深复制功能。
下列有关指针的操作中,正确的是()。
请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程文件proj3。本题创建一个小型字符串类,字符串长度不超过100。程序文件包括proj3.h、proj3.cpp、writeToFile.obj。补充完成重载赋值运算符函数,完成深复制功能。
模板对类型的参数化提供了很好的支持,因此()。
在数据库中,产生数据不一致的根本原因是
随机试题
A硫色素反应B麦芽酚反应CKober反应D差向异构化反应E铜盐反应四环素在pH2.0~6.0时可发生
浅Ⅱ度烧伤创面的特点是
根据证据理论和《民事诉讼法》以及相关司法解释,关于证人证言,下列哪些选项是正确的?(2011年卷三83题,多选)
商业银行的首要经济作用表现为()
山岭地区的雨期路基施工一般应选择在()地段进行。
早期资本结构理论包括()。
旅行社责任保险的投保范围包括()。
请认真阅读下列材料,并按要求作答。运球是篮球比赛中个人进攻的重要技术。它不仅是个人攻击的有力手段,而且是组织全队进攻战术配合的桥梁。有目的的运球可以突破防守、发动进攻、调整位置、寻找有利时机进行传球和投篮,尤其是进攻紧逼人盯人防守的有力武器;盲目的运球
班主任班级管理的内容就是组织和培养班集体。
2013年1月5日,国务院发出指导意见,要求城市优先发展公共交通。下列相关叙述正确的是()。
最新回复
(
0
)