首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #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
60
问题
有如下程序: #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全国计算机二级
相关试题推荐
软件生命周期包括八个阶段。为使各时期的任务更明确,又可以分为以下三个时期:软件定义期,软件开发期,软件维护期。编码和测试属于【 】期。
下列叙述中错误的是
所有的函数模板定义都是以关键字______开始的,该关键字之后是用______括起来的形式参数表。
栈通常采用的两种存储结构是()
下列对模板的声明中,正确的是()。
如果一个模板声明列出多个参数,则多个参数之间必须使用______隔开,每个参数都必须重复使用关键字______。
在析构函数中调用虚函数时,采用_____联编。
以下程序的执行结果是()。#include<iostream.h>template<classT>classSample{Tn;Public:Sample(Ti){n=i
下列关于函数模板实参不能省略的情况说明不正确的是
重新定义标识符的作用域规定是外层变量被隐藏,______变量是可见的。
随机试题
钩端螺旋体病洪水型的传染源是
关于流产的描述,正确的是
可引起维生素B12和叶酸缺乏的降糖药为
患者,女,35岁。常于经前出现小腹灼热疼痛拒按,腰骶胀痛,发热,经色黯红,质稠有块,带下色黄量多,小便短赤,舌红苔黄腻,脉濡数。其证候是( )。
根据《中华人民共和国合同法》的规定,在下列合同中,有关当事人不可以随时解除合同的有()。
某村民委员会在开展“争创精神文明户”活动中,将子女是否孝敬老人作为一项重要的指标,要求村民对孝敬老人作出承诺。张老汉的儿子张三写了书面承诺书,保证每月至少给父亲50元的赡养费,保证书一式三份,村民委员会在保证书上盖章后,张老汉、张三和村民委员会各存一份。之
AirDefenseIdentificationZone
将一枚硬币独立地掷两次,引进事件:A1={掷第一次出现正面},A2={掷第二次出现正面},A3={正、反面各出现一次},A4={正面出现两次},则事件
PresidentKennedydied______yearsbeforethedaythespeechwasmade.
HowlongdidEmilyDickinsonliveinthehousewhereshewasborn?
最新回复
(
0
)