问题
单项选择题
有如下程序;
#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 ();
这个程序的输出结果是( )。
A) 111
B) 333
C) 11333
D) 11133
答案
参考答案:C
解析: 此题考查的是析构函数和对象的生存期。在主函数中,首先定义了一个DA类对象数组d,从初始化列表中可以看出,它包含3个对象;然后通过new运算符动态创建了一个DA类的对象数组,并将首地址赋给DA类指针p;接着通过delete[]运算符销毁指针p所指向的数组,故此时会输出“11”。最后函数结束,销毁前面定义的对象数组d,会输出“333”。故最后的输出结果是11333。