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

admin2010-12-16  29

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

最新回复(0)