有如下程序: #include using namespace std; class Sample{ public:

20 查阅

有如下程序: #include<iostream> using namespace std; class Sample{ public: Sample()<) ~Sample(){cout<<'*';} }; int main(){ Sample temp[2],*pTemp[2]; return 0; } 执行这个程序输出星号(*)的个数为( )。

A.1

B.2

C.3

D.4

参考答案:

B解析:此题考查的是构造函数和析构函数。构造函数在对象被创建时由系统自动调用,而析构函数在对象的生存期即将结束时由系统自动调用。此题中,主程序在创建Sample类的对象temp[2]数组时,调用Sample类的默认构造函数,在主函数退出时,调用析构函数清除对象temp[2],输出字母*,因为对象是包含两个元素的数组,所以调用两次析构函数,即输出两个*。

计算机二级