有如下程序:    #include<iostream>    using namespace std;    class Sample{    public:         Sample()<)         ~Sample(){cout<<’*’;

admin2013-05-30  31

问题 有如下程序:    #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],输出字母*,因为对象是包含两个元素的数组,所以调用两次析构函数,即输出两个*。
转载请注明原文地址:https://kaotiyun.com/show/2nNp777K
0

最新回复(0)