#include <iostream.h>
class Base //基类
{
public:
Base() {cout<<"调用Base构造函数"<<endl;} //基类构造函数
~Base() {cout<<"调用Base析构函数"<<endl;} //基类析构函数
void Soil() {cout<<"调用Base的Soil函数"<<endl;} //Soil函数
};
class Public : public Base //一级公有继承
{
public:
Public() {cout<<"调用Public构造函数"<<endl;} //一级继承构造函数
~Public() {cout<<"调用Public析构函数"<<endl;} //一级继承析构函数
void Cat() {cout<<"调用Public类的Cat函数"<<endl;}//Cat函数
};
class unin //非继承类
{
public:
unin() {cout<<"调用unin构造函数"<<endl;} //非继承类构造函数
~unin() {cout<<"调用unin析构函数"<<endl;}//非继承类析构函数
Base u; //创建一个基类对象
};
class Pu_Pu : public Public //二级公有继承
{
public:
Pu_Pu() {cout<<"调用Pu_Pu构造函数"<<endl;} //二级继承构造函数
~Pu_Pu() {cout<<"调用Pu_Pu析构函数"<<endl;}//二级继承析构函数
};
void main()
{
cout<<"创建Base类对象并调用Base类的Soil函数"<<endl;
Base a; //创建Base类对象
a.Soil(); //调用Soil函数
cout<<"创建Public类对象并调用Base类的Soil函数和Public类的Cat函数"<<endl;
Public b; //创建Public类对象,一级公有继承
b.Soil(); //调用Soil函数
b.Cat(); //调用Cat函数
cout<<"创建unin类对象并调用Base类的Soil函数"<<endl;
unin c; //创建unin类对象,非继承
c.u.Soil();//调用Soil函数,作为Base的成员
cout<<"创建Pu_Pu类对象并调用Base类的Soil函数和Public类的Cat函数"<<endl;
Pu_Pu d; //创建Pu_Pu类对象,二级公有继承
d.Soil(); //调用Soil函数
d.Cat(); //调用Cat函数
}
运行结果:
创建Base类对象并调用Base类的Soil函数
调用Base构造函数
调用Base的Soil函数
创建Public类对象并调用Base类的Soil函数和Public类的Cat函数
调用Base构造函数
调用Public构造函数
调用Base的Soil函数
调用Public类的Cat函数
创建unin类对象并调用Base类的Soil函数
调用Base构造函数
调用unin构造函数
调用Base的Soil函数
创建Pu_Pu类对象并调用Base类的Soil函数和Public类的Cat函数
调用Base构造函数
调用Public构造函数
调用Pu_Pu构造函数
调用Base的Soil函数
调用Public类的Cat函数
调用Pu_Pu析构函数
调用Public析构函数
调用Base析构函数
调用unin析构函数
调用Base析构函数
调用Public析构函数
调用Base析构函数
调用Base析构函数