首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #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
102
问题
有如下程序: #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全国计算机二级
相关试题推荐
设有char str[80]以下不能将输入数据first\nsecond\n<CR>读取到数组sir中的语句是
一个类的友元函数能够访问该类的
内联函数是通过______来实现的,因此内联函数是真正的函数。
有如下类的定义。那么空格处的语句是()。classMyClass{____________intx,y;public:MyClass(intx1=0,inty1=0){
执行完C++程序中的下列3条语句后,c指向()。inta,b,*c=&a;int*p=c;p=&b;
C++语言是以()语言为基础逐渐发展演变而成的一种程序设计语言。
下列叙述中正确的是()
()是一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本。
在表达式x+y*z中,“+”是作为成员函数重载的运算符,“*”是作为非成员函数重载的运算符。下列叙述中正确的是()。
随机试题
有的足球运动员不会说英语,但所有的足球运动员都喜欢看美剧。如果以上陈述为真,则以下哪项也一定为真?
《苦恼》一文的作者属于下列哪个国家()
按照所给要求,创建工资帐套,进行工资系统基础设置:设置工资项目(见下表)。
下列关于铁路部门退票规定的正确表述是()。
下面属于非生产性采购的是()。
二、根据下列资料,回答101~105题。2015年上半年,A市新设内资企业20518户,注册资本(金)1651.8亿元,同比分别增长39.7%和133%。其中私营企业20187户,注册资本(金)1258.76亿元,同比分别增长30.4%和224%
牙齿折裂原因有哪些?该如何处理?
以下是关于某中学甲班同学参加夏令营的三个断定:(1)甲班有学生参加了夏令营。(2)甲班所有学生都没有参加夏令营。(3)甲班的蔡明没有参加夏令营。如果这三个断定中只有一项为真,则以下哪项一定为真?
以下关于测试方法的叙述中,不正确的是______。
Readthisnotefromyourboss,Mr.RichardWesley.May18th,2013Louise,Ourcompanyisworkingonopeninganewof
最新回复
(
0
)