问题 填空题

有如下程序:
#include<iostream>
using namespace std;
class TestClass
int k;
public:
TestClass(int x=1):k(x)
~TestClass Ocout<<k;
;
int main()
TestClass a[]=TestClass(3),TestClass(3),TestClass(3);
TestClass *p=new TestClass[2];
delete []p;
return ():

这个程序的输出结果是______。

答案

参考答案:11333

解析: 定义TestClass型数组a时,将导致TestClass的构造函数被执行三次,每次执行时,其传入参数为3,定义TestClass指针p时,将执行两次默认构造函数,其参数为1,执行"delete []p"时,将执行TestClass的构造函数,输出p[0].k,p[1].k(两者均为1) ,在程序运行结束后,将释放局部变量,从而导致数组a中的三个元素被析构,输出a[0],a[1],a[2]中的值(均为3) 。

单项选择题 A3型题
填空题