C++
习题与解?/p>
-
继承和派?/p>
6.1
分析以下程序的执行结?/p>
#include<iostream.h>
class base
{
public:
base(){cout<<"constrUCting base class"<<endl;}
~base(){cout<<"destructing base class"<<endl; }
};
class subs:public base
{
public:
subs(){cout<<"constructing sub class"<<endl;}
~subs(){cout<<"destructing sub class"<<endl;}
};
void main()
{
subs s;
}
解:本题说明单继续情况下构造函数和析构函数的调用顺序。这?/p>
base
为基类,
subs
为派生类?/p>
所以输出为?/p>
constructing base class
constructing sub class
destructing sub class
destrcuting base class
注重:在单继续情况下,首先调用基类的构造函?/p>
,随后调用派生类的构造函数,?/p>
构函数的调用顺序则正好相反?/p>
6.2
分析以下程序的执行结果:
#include<iostream.h>
class base
{
int n;
public:
base(int a)
{
cout<<"constructing base class"<<endl;
n=a;
cout<<"n="<<n<<endl;
}
~base(){cout<<"destructing base class"<<endl;}
};