问题
单项选择题
有如下程序: #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],输出字母*,因为对象是包含两个元素的数组,所以调用两次析构函数,即输出两个*。