C++入门经典 笔记 (第十六章)使用继承扩展类
来源:互联网 发布:unix环境高级编程源码 编辑:程序博客网 时间:2024/06/06 09:03
C++的特点:封装、继承和多态,这一章,我们就讲继承,如果一个类在现有类的基础上添加了新功能,那么这个类就被称为从原来的类派生而来,而原来的类被称为新类的基类。
派生的语法
在C++中,要从一个类派生出另一个类,可在类声明中的类名后加上冒号,再指定类的访问控制(public、protected或private)以及基类。
例如:class Mammal
{
//哺乳动物类的内容
}
class Dog : public Mammal
{
//狗公有继承了哺乳动物类
}
前面提到那3个访问限定符:public、protected和private。只要有类的对象,函数就能访问该类的所有成员数据和成员函数。在公有继承的情况下,派生类可以访问基类的公有成员和受保护成员,但是不能访问私有成员。
构造函数和析构函数
在创建派生类的对象时,将调用多个构造函数。首先应该明白,派生类对象也是基类对象,因为派生类是通过基类继承而来的,所以,在创建派生类对象时,首先就调用基类构造函数,然后调用派生类构造函数完成对象的创建。在销毁派生类对象时,首先调用派生类的析构函数,然后调用基类的析构函数。这恰恰与创建对象时调用的顺序相反。
重写函数
如果派生类创建了一个返回类型和签名(包括函数名、参数列表和关键字)都与基类成员函数相同的函数,但是提供了新的实现,这就称为重写该函数。派生类可以重写基类的函数,重写函数意味着在派生类中修改基类函数的实现。创建派生类对象时,将调用正确的函数。
重载和重写的区别
重载成员函数时,创建了多个名称相同但签名不同的函数。而重写成员函数时,在派生类中创建了一个名称和签名都与基类函数相同但实现方法不同的函数。
调用基类方法
即使我们重写了基类的方法,仍然可以使用权限定名来调用它。为此,可指定基类名、冒号和方法名,如:已在派生类中重写了move()方法,而现在需调用基类的move()方法,就可以写Mammal::move();
- C++入门经典 笔记 (第十六章)使用继承扩展类
- Java+7入门经典 - 6 扩展类与继承 Part 1/2
- Java+7入门经典 - 6 扩展类与继承 Part 2/2
- 继承与多态(一):使用继承扩展类
- (福利)”C++Primer笔记“和”Java经典入门笔记“
- C++入门经典 笔记 (第十七章)使用多态和派生类
- C++入门经典 笔记 (第二十章)使用特殊的类、函数和指针
- C++primer 第十六章笔记 初稿
- 算法竞赛入门经典-学习笔记1(c语言)
- C++入门经典 笔记 (第八章)创建基本类
- C++入门经典 笔记 (第九章)高级类
- VC++入门经典学习笔记--继承和面向对象
- C/C++类设计--扩展和继承
- 第十六章 快速入门
- Perl语言入门笔记 第十六章 进程管理
- C#(1)经典入门
- C++入门经典 笔记(第四章)使用表达式、语句和运算符
- C++入门经典 笔记(第七章)使用数组和字符串存储信息
- 命令行(The Command Line is Your Best Friend)
- Java 单例模式几种实现的差别
- 87 thinkphp 和sql查询条件为某字段不为空的情况
- Shell命令——文件目录
- CentOS 7 yum安装 Mono 和 手动 安装Jexus
- C++入门经典 笔记 (第十六章)使用继承扩展类
- Android proguard 详解(二)
- leetcode: (226) Invert Binary Tree
- 大二暑假
- POJ 3191 The Moronic Cowmpouter
- Cocos2dx_可擦除Layer
- voyage 虚拟机安装过程
- lombok 介绍及基本使用方法
- java Map 按value值排序和按key值排序