选择题   有如下程序:
    #include<iostream>
    #include<cstring>
    using namespace std;
    class XCF{
    int a;
    public:
    XCF(int aa=0):a(aa){cout<<'1';}
    XCF(XCF&x){a=x.a;cout<<'2';}
    ~XCF(){cout<<a;}
    int Geta(){return a;}
    };
    int main(){
    XCF d1(5),d2(d1);
    XCF*pd=new XCF(8);
    cout<<pd->Geta();
    delete pd;
    return 0;
    }
    运行时的输出结果是______。
 
【正确答案】 B
【答案解析】在这个程序中在建立对象d1(5)时,调用构造函数XCF(int aa=0):a(aa){cout<<'1';),输出1;在建立d2(d1)时,调用拷贝构造函数XCF(XCF&x){a=x.a;cout<<'2';},输出2;在建立new XCF(8)对象时,调用构造函数XCF(int aa=0):a(aa){cout<<'1';},输出1;语句cout<<pd->Geta()的功能是输出8;语句delete pd;调用析构函数~XCF(),输出8;当退出程序时,分别释放对象d2、d1,输出55。