有如下程序: #include<iostream> using namespace std; class Part{ public: Part(int x=0):val(x){cout< ~Part( ){cout

admin2012-01-20  29

问题 有如下程序:    #include<iostream>    using namespace std;    class Part{    public:    Part(int x=0):val(x){cout<    ~Part( ){cout<<val;}    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。  
转载请注明原文地址:https://kaotiyun.com/show/qPVp777K
0

最新回复(0)