#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析构函数