类的继承与派生 c++ ~~菜鸟的第一篇博文
来源:互联网 发布:氯化钠的提纯实验数据 编辑:程序博客网 时间:2024/05/17 22:03
c++学习已经有一段时间了,但是在这段时间中用到继承方面的知识并不多,自己本来搞得就不是很清楚,现在回头看了一下继承与派生,总结如下:
1.首先,类与对象的关系恰当反映了个体与同类群体共同特征之间的关系。继承是众多关系中的一种,例如:汽车与自行车从属于一个抽象的概念-----交通工具。
2.类的派生机制有什么好处呢? 好处在与代码的重用性和扩充性。
下面进入主题:
1.1派生类的定义
派生类的语法定义:
class 派生类名 :继承方式 基类名1,继承方式 基类名2,继承方式 基类名3。。。继承方式 基类名n
{
派生类成员声明
};//这个分号是开始写程序时经常会被忽视的,现在还好。。
Note:
1.一个派生类可以同时有多个基类,这种情况叫做多继承。依次可以推断出,有一个基类时叫做单继承。
2.继承方式规定了如何访问从基类继承的成员。包括:private,protected,public三种。如果不显式给出继承方式关键字,系统默认为私有继承。
1.2 派生类生成过程
1.吸收基类成员 :派生类继承了除基类构造函数和析构函数之外的所有成员
2.改造基类成员
3.添加新成员:是继承与派生机制的核心
2.访问控制问题
公有继承:当类的继承方式为公有继承时,基类的公有成员和保护成员的访问权限不变,基类的私有成员不可访问。
保护继承:基类的公有成员和保护成员变为保护,基类的私有成员不可访问。
私有继承:基类的公有成员和保护成员变为私有,基类的私有成员不可访问。
Note:private和protected的区别在当派生类作为基类时得到体现。
3.类型兼容性规则
类型兼容性规则是指在需要基类对象的任何地方,都可以用公有派生类的对象来替代。
替代包括以下几方面:
派生类的对象可以赋值给基类对象
派生类对象可以初始化基类的引用
派生类对象的地址可以赋值给基类的指针
4.派生类的构造和析构
构造函数:
从基类继承的成员的初始化工作需要基类的构造函数完成,而新增的需要由派生类构造。
派生类的参数包括两部分,一部分是用于新增成员的初始化,另一部分用于传递给基类初始化其成员。
基本格式如下:
派生类名::派生类名(总参表):基类1 (参数表1)。。。基类名n(参数表n),内嵌对象名1(参数1)。。。内嵌对象名n(参数表n)
{
新增成员的初员初始化
}
析构函数:
执行次序与构造函数正好相反,先对派生类的普通成员进行清理
虚基类
当某类的部分或全部直接从另一个直接基类派生而来,在这些直接基类中从上一级共同继承而来的成员就拥有相同的名称。这时从不同路径继承下来的同名成员数据就会拥有多个拷贝,虚基类用来解决这个问题。
- 类的继承与派生 c++ ~~菜鸟的第一篇博文
- C++: 类的继承派生
- 菜鸟的第一篇博文
- 类的继承与派生
- 类的继承与派生
- 类的继承与派生
- 类的继承与派生
- 类的继承与派生
- 类的继承与派生
- 类的派生与继承
- 类的继承与派生
- 类的继承与派生
- 类的派生与继承
- 类的继承与派生
- O-c中类的继承与派生的概念
- 菜鸟的第一篇C博:希望成长
- 菜鸟的第一篇
- C++-继承:基类与派生类的关系
- Xcode5 After modifying system headers, please delete the module cache
- Vim学习指南
- SQL语句的两次执行问题
- opencv打开一幅图像
- 排序算法_希尔排序
- 类的继承与派生 c++ ~~菜鸟的第一篇博文
- Java多线程之线程池(五)
- ORM框架理论基础
- iOS 中json数据解析异常处理
- uvalive 5734 字符串最小表示法
- C:\WINDOWS\System32\cmd.exe”返回
- Linux下安装Java开发环境及Eclipse
- KMP字符串模式匹配详解
- Opengl Camera相关知识点