C++面向对象编程 这一分类只是学校课程的笔记,C++语法 分类中也会有不少的 C++ 面向对象的知识。

C++ = C + 面向对象(对象和类) + …

面向过程的缺点

大型程序中,有很多全局数据和全局函数,这导致了函数和数据之间数目巨大的潜在连接。若全局数据有所改动,可能会导致所有访问这个数据内的全部函数的重写,程序维护困难。

面向对象语言特点

抽象封装继承多态

抽象

抽象描述了一个对象的基本特征,可以将这个对象与所有其他类型的对象区分开来,因此提供了清晰定义的概念边。可以理解为抽象关注接口,即可观察到的行为;而封装则关注这些行为的实现。

抽象的过程:

  1. 注意问题描述、实质;以及其实现过程或细节
  2. 数据抽象:共有状态或属性
  3. 行为抽象:共有行为特征、功能

封装是对ADT的具体实现、形成接口与实现的分离、信息隐藏。

1
2
3
4
5
6
7
8
class classname
{
public:
//public members
//friend function
private:
//private members
};

继承是某类(派生类)对象可以继承另外一类对象(基类)的特征和功能,依靠复制基类的数据和函数。

多态

1
2
3
F(动物 *P){ p->run(); }
//F即为多态函数,当传递狗对象给p时,执行狗.run()
//传递猫对象给p时,执行猫.run()……