单选题 如下程序的输出结果是
#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。