首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序 #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
27
问题
有如下程序
#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全国计算机二级
相关试题推荐
在公有继承的情况下,允许派生类直接访问的基类成员包括()。
下列运算符函数中肯定不属于类FunNumber的成员函数的是()。
请打开考生文件夹下的解决方案文件proj1,其中有枚举DOGCOLOR、狗类Dog和主函数main的定义。程序中位于每个“//ERROR****found****”下的语句行有错误,请加以改正。改正后程序的输出结果应该是:Thereisawhi
若要对Data类中重载的加法运算符成员函数进行声明,下列选项中正确的是()。
若已定义了类Vehicle,则下列派生类定义中,错误的是()。
对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为
数据库系统的三级模式不包括()。
下列选项中属于面向对象设计方法主要特征的是()。
有三个关系R、S和T如下:其中关系T由关系R和S通过某种操作得到,该操作为()。
下列关于函数模板的表述中,正确的是
随机试题
企业计算固定资产折旧的主要依据有()。
简述一般侵权行为的构成要件。
某农场蔬菜、水果等保存窖保管和维护员工,某天突然感到胸闷,呼吸困难,伴口唇青紫等症状和体征,可能接触何种有害气体对此患者应作何种急救处理
健脾丸的功用是木香槟榔丸的功用是
《麻醉药品、第一类精神药品购用印鉴卡》的批准发放部门是
A.连续生产的原料药的一个批号B.粉针剂的一个批号C.固体、半固体制剂的一个批号D.液体制剂的一个批号E.注射剂的一个批号
期末资产负债表“应付债券”项目应根据()填列。
藏羚羊是中国国家一级保护动物,主要分布在西藏、青海、新疆西部80多万平方公里的高寒荒漠地区,其中80%的区域在西藏羌塘境内。自20世纪80年代开始,由于受国际藏羚绒制品消费和非法贸易利益的驱使,青藏高原上的藏羚羊遭受了盗猎分子的大肆猎杀,种群数量急剧下降。
如图所示的UML类图中,Shop和Magazine之间为(41)关系,Magazine和Page之间为(42)关系。UML类图通常不用于对(43)进行建模。(43)
Hissisteralwaysspendssomuch______clothesthatshecan’tmanagetolivewithinherincome.
最新回复
(
0
)