面向过程
以过程为中心的编程思想,就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了
面向对象
- 首先要明确什么是对象,现实中任何事物都可以称之为对象,有自己的【属性】和【行为】。
- C++中面向对象的思想就是把一切事物都看成对象,每个对象都是由【数据】和【函数】组成,【数据】体现了对象的【属性】,【函数】是用来对数据进行操作的,以便实现某些【功能】。
- 解决问题时以对象为中心,以功能来划分问题,我们把要完成的功能封装成一个一个的对象,调用对象的方法或属性来完成功能。
类和对象
- 有相同特性和行为的对象的抽象就是类,类是对象的抽象,而对象是类的具体实例。
- 类是抽象的,不占用内存,而对象是具体的,占用存储空间。类是用于创建对象的蓝图,
封装
- 数据和针对数据的操作捆绑在一起,也就是把对象的属性和行为捆绑在一起,构成一个不可分割的整体,也就是类
- 其中不希望被访问的数据或函数采用private修饰。这样外部就不能直接访问或修改,通过提供的公共接口访问,就能够保护类中的成员,实现对数据的封装
继承
- 继承是在已有类的基础上创建新类,已有类称为基类(父类),新类称为派生类(子类)
- 通过继承衍生出来的派生类拥有基类的所有属性和方法,并且能够对基类的功能进行扩充、修改或重写
- 好处:能够让我们很方便地使用现有的类的所有功能,无需编写原来的类就可以对现有的类进行扩展
多态
- 同一个继承体系结构的基类与派生类中,用同名函数来实现各种不同的功能
- 调用同一个方法,由于对象不同可能会有不同的行为
- 通过虚函数实现的,基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据所指对象的实际类型来调用相应的函数,如果对象类型是派生类,就调用派生类的函数,如果对象类型是基类,就调用基类的函数。