如下程序的输出结果是 #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";l ~XCF( ){cout<<a;} int Geta( )t return a;} }; int main( ){ XCF d(15),d2(d1); XCF*pd=new XCF(8); cout<<pd->Geta( ); delete pd; return 0; }
A.1215588
B.1218855
C.12185
D.128512
参考答案:B
解析: XCFd(15)调用XCF的XCF(intaa=0):a(aA) 构造函数,打印1。d2(d1)调用构造函数XCF(XCF&x),此时赋值使得d2.a=d1.a=5,同时打印2。XCF*pd= new XCF(8);新建一个对象指针并创建一个XCF对象,调用构造函数XCF(intaa=0):a(aA) ,pd->a=8,并打印1。delete pd;调用析构函数,打印8。在程序结束时,撤销对象d2和d1,分别打印5、5。故答案为1218855。