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

admin2019-07-10  21

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

选项 A、T41
B、AT41
C、T41T41
D、AT41AT41

答案B

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

最新回复(0)