C++面向对象

对面向对象的含义,大概每个人都会有每个人的看法吧。

开篇

说道面向对象,最基本的应该都会说出 继承,多态。
而大多数人会加上封装(封装在C中也会用到,只不过C++体现的更加明显)

C++并不只是一种面向对象语言,它可以支持好几种编程风格,包含面向对象编程风格和泛型编程风格。

封装,继承,多态

面向对象编程和泛型编程

面向对象编程

封装

可以使我们将对象的状态和处理这些状态的函数绑定在一起,将程序模块化

  • 封装的目标就是实现软件的高内聚,低耦合
  • 对象的属性用变量定义,行为用方法定义

继承

即拿到父类的相关属性由子类使用而不必再次定义。

  • 可以对父类的方法进行重写来更加符合特殊需求
  • 继承是子类共享父类数据和方法的机制

多态

在子类里面重新实现父类已有的方法,重新实现包含了重写和重载

  • 重写:覆盖写,将子类从父类继承下来的方法重新实现
  • 重载:发生在同一个类中,相同方法名,不同形参,但返回值类型必须相同

多态可以简单的理解为一个接口,多个方法
C++的多态是通过虚函数来实现的,虚函数允许子类重新定义成员函数,而子类重新定义弗雷的做法称为override

泛型编程

  • 可以使我们编写出一些函数和类
  • 对没有定义的,没有关联的和未知的类型函数和对象进行操作
  • 减少程序中耦合性和相互依赖型提供的一种独特方式
  • 泛型编程->模板编程

总结

封装是为了模块化(重用);
继承是为了代码扩展和重用;
多态是为了接口重用。