问题 填空题

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

填空题
多项选择题