问题
单项选择题
有如下程序:
#include<iostream>
using namespace std;
class Part
public:
Part(int x=0):val(x)cout<
pritave:
int val;
;
class Whole
public:
Whole(int x,int Y,int z=0):p2(x),p1(Y),val(z)cout<<val;
~Whole( )cout<<val;
pritave:
Part p1,p2;
int val;
f;
int main( )
Whole obj(1,2,3);
return 0;
程序的输出结果是
A.123321
B.213312
C.213
D.123123
答案
参考答案:B
解析: 当类中出现其他类的对象时,先对该对象初始化,即调用对象类的构造函数,然后调用本类的构造函数;进行撤销时,先调用本类的析构函数,然后再调用类中对象所对应的类的析构函数。对象的创建顺序和构造函数声明中的参数顺序无关,而同类中定义的先后顺序有关。故先创建p1,再创建p2,撤销时先撤销p2,再撤销p1。