首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include<iostream> using namespace std; class Part{ public: Part(int x=0):val(x){cout<<val;} ~Part(){
有如下程序: #include<iostream> using namespace std; class Part{ public: Part(int x=0):val(x){cout<<val;} ~Part(){
admin
2020-04-07
69
问题
有如下程序:
#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。所以,首先被构造的是p1(y),输出2;第二个被构造的是p2(x),输出1;最后调用析构函数,输出val的值3;析构函数调用顺序与构造函数相反。故最后输出213312。
转载请注明原文地址:https://kaotiyun.com/show/Sx8p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下的运算符重载函数定义:double operator+(int i,int k){return double(i+k);}但定义有错误,对这个错误最准确的描述是( )。
结构化程序设计主要强调的是()。
可以把具有相同属性的一些不同对象归类,称为______。
下列对于线性链表的描述中,正确的是()。
模板使我们可以用一个代码段指定一组相关函数(称为______)或一组相关类(称为______。
具有3个结点的二叉树有()。
有如下程序:#include<iostream>usingnamespaeestd;classONE{public:virtualvoidf(){cout<<"1";}};
若有下面的函数调用:fun(a+b,3,max(n-1,b))则fun的实参个数是()。
下列叙述中错误的是
在下面的4个关键字中用来说明虚函数的是
随机试题
西方最早的经典医德文献是反映孙思邈的医德思想和境界的是
下列关于认识错误的说法,不正确的是()
考核基本建设投资支出效益时,应采用的方法是()。
根据对外贸易法律制度的规定,下列说法中不正确的是()。
下列说法错误的是()
根据《幼儿园工作规程》,幼儿园园长应具备()。
某一年中有53个星期二,并且当年的元旦不是星期二,那么下一年的最后一天是()。
下列叙述中正确的是
Amongtheraftofbooks,articles,jokes,romanticcomedies,self-helpguidesandotherwritingsdiscussingmarriage,somefamil
复式记账制度()现金预算()负债()标准成本()
最新回复
(
0
)