首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include class A { public: A(int n=2):m_i(n){} ~A(){std::cout
有如下程序: #include class A { public: A(int n=2):m_i(n){} ~A(){std::cout
admin
2019-05-22
48
问题
有如下程序:
#include
class A
{
public:
A(int n=2):m_i(n){}
~A(){std::cout<
protected:
int m_i;
};
class B:public A
{
public:
B(int n):m_a2(n),m_al(m_i+1){}
public:
~B()
{
std::cout<
--m_i;
}
private:
A m_a1;
A m_a2;
};
int main()
{
B b(5);
return 0;
}
运行后的输出结果是( )。
选项
A、2351
B、2531
C、5354
D、5534
答案
B
解析
main()函数中调用了B的构造函数,参数为5,接下来B类对象b的构造过程如下:①调用基类A的默认构造函数,构造对象b的基类部分:初始化mj为2。②按照B类中成员的定义顺序,使用成员初始化列表初始化两个A类成员:首先执行m_a1(m_i+1),m_i为基类A中的成员,此时值为2,调用A类的默认构造函数,初始化m_a1.m_i为3;然后执行m_a2(n).调用A类的默认构造函数。初始化m_a2.m_i为5。
接着main()执行return语句,此时对象b需要调用析构函数进行释放,释放过程如下:①首先运行B类的析构函数~B(),输出m_j的值为2,然后将m_i自减1,使得m_i的值为1。②按照B类中成员定义顺序的反顺序,首先调用m_a2的析构函数~A(),释放对象m_a2,输出m_a2.mj的值5;再调用m_a1的析构函数~A(),释放对象m_a1,输出m_a1.mj的值3。③最后调用基类A的析构函数~A(),释放b对象中的基类部分,输出m_i的值1。
由上分析,程序运行结果为:2531。故本题答案为B选项。
转载请注明原文地址:https://kaotiyun.com/show/XB8p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
成员初始化列表c++语言规定对基类数据成员的初始化必须在派生类的构造函数中的成员初始化列表中进行。
A、 B、 C、 D、 B特别要注意“结点的度”和“树的度”是两个不同的概念。“结点的度”指的是此结点拥有的后件个数。“树的度”指的是所有结点中的最大的度。在二叉树中,结点中最大的度为2,所以二叉树的度为2。
false此题考查的是逻辑常量。在c十+语言中只有两个逻辑常量:true和false。故本题应填入false。
A、 B、 C、 D、 C通过调用友元函数,实现求解n!的算法。sum=5!+4!+3!+2!。
A、 B、 C、 D、 B构造函数A中的形参a对静态成员a形成了屏蔽,故只有在成员函数init()中才将静态成员a的值修改为1,而在其他成员函数中没发生变换,故obj.a=1。
A、 B、 C、 D、 B耦合性和内聚性是衡量软件的模块独立性的两个定性的标准。其中,内聚性是度量一个模块功能强度的一个相对指标,耦合性则用来度量模块之间的相互联系程度。它们是相互关联的。在程序结构中,各模块
A、 B、 C、 D、 A关系的并运算是指,由结构相同的两个关系合并,形成一个新的关系,其中包含两个关系中的所有元组。
A、 B、 C、 D、 B两个实体集间的联系可以有下面几种:一对一的联系、一对多或多对一的联系和多对多的联系。由于一间教室可以坐多个学生,所以它们的联系是一对多联系。
下面不属于C++的预定义的流对象是()。A)cinB)iostreamC)clogD)Celt
随机试题
Reading______thelines,thisletterisreallyarequestformoney.
A.IP的固有特征B.输入到影像读出装置的信号和输出信号之间的关系C.影像处理功能D.检测功能E.影像记录装置CR系统运行的四象限理论,第三象限表示
关于药物相互作用A、磷霉素与大环内酯类B、磺胺甲噁唑(SMZ)与甲氧苄啶(TMP)C、甲苯磺丁脲与氢氯噻嗪类药D、排钾利尿药与强心苷药E、青蒿素与乙胺嘧啶联合应用可出现敏感化现象的是
A.琥珀胆碱B.泮库溴铵C.维库溴铵D.阿曲库铵E.米库氯铵下列不释放组胺,对心血管影响小的肌松药是
关于石灰稳定土基层,下列叙述正确的有()。
对基础研究投入大量经费似乎作用不大,因为直接对生产起作用的是应用型技术。但是,应用技术发展需要基础理论研究作后盾。今天,纯理论研究可能暂时看不出有什么用处,但不能肯定它将来也不会带来巨大效益。下面哪项是上述论证的前提假设?
Whatimpressionsareyoumakingonthepeoplearoundyou?Yourwords,phrases,evenyourmessagemaysoonbeforgottenbutbelie
Ifwecan______ourpresentdifficulties,theneverythingshouldbeallright.
Whydidthemansellhisoldcar?
Completethetablebelow.WriteNOMORETHANTHREEWORDSORANUMBERforeachanswer.
最新回复
(
0
)