首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include <iostream> using namespace std; class Part{ public: Part(int x=0):val(x) { cout<<val; }
有如下程序: #include <iostream> using namespace std; class Part{ public: Part(int x=0):val(x) { cout<<val; }
admin
2017-10-17
78
问题
有如下程序: #include <iostream> using namespace std; class Part{ public: Part(int x=0):val(x) { cout<<val; } ~Part() { cout<<val; } private: int val; }; class Whole { public: Whole(int x, int y, int z=0):p2(x),p1 (y),val(z) { cout<<val; } ~whole() { cout<<val; private: Part p1,p2; int val; }; int main() { Whole obj (1,2,3); return 0; }程序的输出结果是
选项
A、123321
B、213312
C、213
D、123123
答案
B
解析
本题考查的知识点是:类的构造与析构。建立一个类的对象时,构造函数的执行顺序如下:
①执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序(自左向右);
②执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序(自上而下:(如果一行声明了多个对象,则还要遵循自左向右)
③执行自身的构造函数。
析构顺序与之相反。本题的Whole类没有基类,但有两个Part类的成员p1和p2。根据它们定义的顺序,应该先构造p1再构造p2,而不是按Whole的构造函数中初始化列表的顺序那样构造。所以,第1个被构造的是p1(y),输出一个2;第2个被构造的是p2(x),输出一个1;最后调用自身构造函数,输出val的值3。析构函数严格与之相反。故输出结果为213312,本题应该选择B。
转载请注明原文地址:https://kaotiyun.com/show/TPAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
若要想进行标准输入输出则头文件必须包含______件。
结构化程序设计所规定的三种基本控制结构是顺序结构、选择结构和【】。
在一个成员函数内调用一个虚函数时,对该虚函数的调用进行______联编。
下列do…while循环的循环次数为()inti=5;do{cout<<1--<<endl:1--;}while(i):
()既可重载为一元运算符,又可重载为二元运算符。
有如下类声明:classXA{intx;public:XA(intn){x=n;}};classXB:publicXA{inty;
在双目运算符中需要声明其右操作数时,完成的是【 】重载,而需要声明全部操作数时,完成的是【 】重载。
一个双目运算符作为类的成员函数重载时,重载函数的参数表中有【】个参数。
有函数模板声明和一些变量定义如下:templateT1sum(T2,T3);doubled1,d2;则下列调用中,错误的是
数据流图有两种典型的结构形式,它们分别是变换型和【】。
随机试题
纠问式诉讼
下列经脉循行不经过腹腔的是
在温度高时容器内压力大,不应剧烈震动,开启前应充分降温,以免药液冲的挥发性大的药品是必须保存于密闭的避光容器中并尽量采用小包装,见光容易氧化、分解的是
激光对人体的危害主要是由它的热效应和()造成的。
如果贴现的商业承兑汇票到期,承兑人的银行账户不足支付,银行即将已贴现的票据退回申请贴现的企业,同时从贴现企业账户中将票据款划回。()
()是只出现喻体,不出现本体和比喻词的比喻。
初三学生小岩晚上在家复习功课,忽然灯灭了,他根据物理课上所学的知识,推测可能是保险丝断了,然后检查了闸盒里的保险丝。这是问题解决过程的哪个阶段?()(2014年下半年真题)
某网吧被责令停业50天,其间,网吧门被撬开,丢失电脑30台。后行政机关作出的处罚行为被确认违法,网吧老板要求国家赔偿,则国家应()。
2020年3月1日,世界文化遗产()迎来第一次触网直播。此前居民和游客都只能远望而不能近观,在本次直播镜头中,这一区域揭开了神秘的面纱。
有如下程序:PrivateSubCommand1_Click()j=10Fori=-1To1Step0.3j=j+1Nexti
最新回复
(
0
)