问题
填空题
有如下程序:
#include<iostream>
using namespace std;
class DA
int k;
public:
DA(int x=1):k(X)
~DA( )cout<<k;
;
int main( )
DA d[ ]=DA(3),DA(3),DA(3);
DA * P=new DA[2];
delete[ ]P;
return 0;
程序的输出结果是______。
答案
参考答案:11333
解析: DA d[ ]={DA(3),DA(3),DA(3)};d[ ]虽然有3个元素,但是是同一个对象,所以只调用一次DA的构造函数,打印1,DA*p=new DA[2];调用一次DA构造函数,打印1,delete[ ]p,删除p数组的两个元素,调用两次析构函数,打印两次3,最后程序结束,删除d[ ],调用一次析构函数,打印一次3。