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

admin2011-01-19  39

问题 有如下程序:
   #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。
转载请注明原文地址:https://jikaoti.com/ti/JxL0FFFM
0

最新回复(0)