传统的面向过程编程,数据以及对数据进行操作的函数都是分离的独立个体。
OOP提供了将数据和方法整合起来的途径——类和对象。对象是类的实体,使程序更模块化,提升了代码重用水平。
封装
封装的思想是将内部细节和使用方式分开,把实现的细节隐藏,只暴露公有的接口,实现代码的模块化。C++通过访问标志符(private、protected、public)实现类的封装——将数据声明为private,只能通过类的公有成员函数对数据操作。使得代码具有可重用性和可维护性。
- 类的使用者只需要知道类的接口就可以使用该类;
- 封装实现,无论类的实现如何变化,只要接口不变就行;
- 对数据封装可以防止意外的改变和误用。
继承
继承通过使用已有的类(基类)定义新的类(派生类),派生类既可以继承基类的数据成员和成员函数,也可以添加自己特有的数据成员和成员函数1,还可以对基类中成员函数重新定义(虚函数)2。
类的继承和派生实现了更高层次的代码可重用性。
多态
即多种形态,当相同对象收到不同消息或不同对象收到相同消息时产生不同的实现动作,所谓消息就是调用函数,不同行为就是不同的实现,即具有不同功能的函数可以用同一个函数名。
C++有两种多态形式:
- 编