如何继承基类的构造和析构函数

王朝c/c++·作者佚名  2006-01-06
宽屏版  字体: |||超大  

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有