有如下程序: #include using namespace std; class Appliance{ public: Appliance() { }

admin2015-06-27  11

问题 有如下程序:
       #include
       using namespace std;     
       class Appliance{
       public:
           Appliance() { }
           ~Appliance() { cout<<’A’; }
       };
       class TV:public Appliance{
       public:
           TV(int s=41):size(s) { }
           ~TV() { cout<<’T’<       private:
           int size;
       };
       int main(){
           TV room1,*room2;
           return 0;
       }
运行时的输出结果是

选项 A、T41
B、T41A
C、T41T41
D、T41AT41A

答案B

解析 执行派生类构造函数的顺序是:1、调用基类构造函数,2、调用子对象构造函数,3、再执行派生类析构函数,4、执行基类的析构函数,所以本题中定义room1时,程序结束时先调用派生类析构函数输出T41,然后执行基类的析构函数输出A,而定义对象指针,并不会调用构造函数,所以什么也不输出,所以结果为T41A,,B选项正确。
转载请注明原文地址:https://kaotiyun.com/show/AnBD777K
0

最新回复(0)