C++面向对象编程
这一分类只是学校课程的笔记,C++语法
分类中也会有不少的 C++ 面向对象的知识。
C++
= C
+ 面向对象(对象和类)
+ …
面向过程的缺点
大型程序中,有很多全局数据和全局函数,这导致了函数和数据之间数目巨大的潜在连接。若全局数据有所改动,可能会导致所有访问这个数据内的全部函数的重写,程序维护困难。
面向对象语言特点
抽象
、封装
、继承
、多态
。
抽象
抽象
描述了一个对象的基本特征,可以将这个对象与所有其他类型的对象区分开来,因此提供了清晰定义的概念边。可以理解为抽象
关注接口,即可观察到的行为;而封装
则关注这些行为的实现。
抽象的过程:
- 注意问题描述、实质;以及其实现过程或细节
- 数据抽象:共有状态或属性
- 行为抽象:共有行为特征、功能
封装
是对ADT的具体实现、形成接口与实现的分离、信息隐藏。
1 | class classname |
继承
是某类(派生类)对象可以继承另外一类对象(基类)的特征和功能,依靠复制基类的数据和函数。
多态
:
1 | F(动物 *P){ p->run(); } |