有如下程序: #include<iostream> using namespace std; class PARENT { public: PARENT(){cout<<"PARENT";) }; class

admin2012-01-20  27

问题 有如下程序:
   #include<iostream>
   using namespace std;
   class PARENT
   {
   public:
   PARENT(){cout<<"PARENT";)
   };
   class SON:public PARENT
   {
   public:
   SON(){cout<<"SON";}
   };
   int main()
   {
   SON son;
   PARENT *p;
   p=&son;
   return 0;
   }
   执行上面程序的输出是______。

选项

答案PARENTSON

解析 此题考查的是派生类和基类的构造函数。派生类构造函数的执行顺序为:首先调用基类的构造函数,调用顺序按它们被继承时说明的顺序;然后调用子对象的构造函数,调用顺序按它们在类中说明的顺序;最后是派生类构造函数中的内容。SON son;执行时首先调用基类的构造函数,输出“PARENT”,然后调用派生类的构造函数输出“SON”。需要注意的是,语句PARENT *p;只是定义一个PARENT类的指针,并不调用构造函数。
转载请注明原文地址:https://kaotiyun.com/show/GJVp777K
0

最新回复(0)