首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序 #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
49
问题
有如下程序
#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://www.kaotiyun.com/show/Rbfp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列叙述中错误的是
软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是
下面不能作为结构化方法软件需求分析工具的是
下面不属于软件设计阶段任务的是
下列关于数据库设计的叙述中,正确的是
耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是()。
使用VC6打开考生文件夹proj3下的工程proj3,其中定义了一个字符串变量类StringVar。类成员的说明在程序注释中。请在//**********333**********和//*****666*****之间填写StringVar成员函数和友元函数
设一棵树的度为3,共有27个结点,其中度为3,2,0的结点数分别为4,1,10。该树中度为1的结点数为()。
模板对类型的参数化提供了很好的支持,因此()。
当数据库中数据总体逻辑结构发生变化,而应用程序不受影响,称为数据的
随机试题
人力资源管理者应该具备哪些能力?
关于细胞间的信号传递过程,错误的是
在高峰强度持续时间长时,骨料生产能力根据储存量和()确定。
下列属于理财从业人员的专业化服务活动表现的有()。
在分税制体制下,中央或上级政府对下级财政实施转移支付的基本收据是( )。
有学者称,“立法者和裁判者在民事立法和司法的过程中应维持民事主体之间的利益均衡”。由此可以推知,他认为民事活动应当遵循()。
根据《民法总则》规定,向人民法院请求保护民事权利的诉讼时效期间为()。法律另有规定,依照其规定。
有良好的坚持性品质的小学生的表现是()。
尽管网络给人们带来了种种问题,但它并不可怕,网络不会制止人类的进步,它开辟的是一条挑战与机遇、艰辛与希望、发展与理想并存的道路。网络归根到底还是人的创造,不能单单从技术的角度来理解网络,网络给人类带来的究竟是幸福还是灾难,最终取决于人类自己,而不是网络技术
Thehealth-careeconomyisrepletewithunusualandevenuniqueeconomicrelationships.Oneoftheleastunderstanding【S1】______
最新回复
(
0
)