龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

C++类继承基本概念解析

时间:2011-04-12 23:18来源:未知 作者:admin 点击:
分享到:
C++ 编程语言的应用范围比较广泛,能够以一种简单灵活的方式帮助开发人员实现许多功能。在C++类继承中,一个派生类可以从一个基类派生,也可以从多个基类派生。 从一个基类派生

C++编程语言的应用范围比较广泛,能够以一种简单灵活的方式帮助开发人员实现许多功能。在C++类继承中,一个派生类可以从一个基类派生,也可以从多个基类派生。 从一个基类派生的继承称为单继承;从多个基类派生的继承称为多继承。

例:单继承的定义

  1. class B:public  
  2. {   
  3. < 派生类新定义成员> 
  4. };  
  5. 多继承的定义  
  6. class C:public A,private B  
  7. {   
  8. < 派生类新定义成员>   
  9. }; 

注:如果在基类前不写访问控制符,则默认为私有的

派生类共有三种C++类继承方式:公有继承(public),私有继承(private),保护继承(protected)

公有继承(public)

基类的公有成员和保护成员可以作为其派生类的公有成员和保护成员

派生类的成员函数可以访问基类中的公有成员和保护成员,无法访问基类中的私有成员

派生类的对象可以访问基类的公有成员

私有继承(private)

基类的公有成员和保护成员都作为其派生类的私有成员

在私有继承时,基类的成员只能由直接派生类访问,而无法再往下继承

保护C++类继承(protected)

基类的所有公有成员和保护成员都成为派生类的保护成员

基类的公有成员和保护成员只能被它的直接派生类成员函数或友元访问

构造函数和析构函数不能被继承

因此构造派生类的对象时,需要对基类数据成员.新增数据成员和成员对象的数据成员进行初始化

派生类构造函数的参数表部分既需要包含子类某些数据成员的初始值,也要包含基类的数据成员的初始值

如果基类没有默认的构造函数,那么派生类必须具有给基类构造函数提供参数的构造函数

派生类构造函数一般语法如下:

  1. 派生类名::派生类名(参数总表)  
  2. :基类名1(参数表1),...,基类名n(参数表n)  
  3. {  
  4. 初始化语句  

当基类有多个构造函数时,编译器根据派生类构造函数为基类构造函数提供的参数初始化列表中的参数类型来确定调用哪个构造函数

派生类的析构函数应当首先对派生类新增普通成员进行清理

然后对派生类新增的对象成员进行清理

最后是对所有从C++类继承来的成员进行清理

精彩图集

赞助商链接