单选题 有如下程序:
#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。