有如下程序: #include<iostream> using namespace std; class DA{ int k; public: DA(int x=1):k(x){} ~DA(){cout<<k;} }; int main(

admin2009-03-17  93

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

解析 本题考查的知识点是:析构函数、对象的生存期。在main函数中,首先定义了一个DA类对象数组d,从初始化列表中可以看出,它包含3个对象。然后通过 new运算符动态创建了一个DA类的对象数组,并将首地址赋给DA类指针p。接下来通过delete[]运算符,销毁指针p所指向的数组,故此时会输出2个1。最后main函数通过return语句返回,此时会销毁前面定义的对象数组d,因此会输出3个3。故本题最终输出的结果是11333。
转载请注明原文地址:https://jikaoti.com/ti/GTW0FFFM
0

最新回复(0)