C++ 编程的主要目的是为 C 语言增加面向对象的功能,而 C 语言本身是一种非常强大的编程语言。
面向对象编程的核心在于创建具有某些特性和方法的对象。在设计 C++ 模块时,我们会尝试将整个世界看作是由对象组成的。例如,汽车是一个对象,它具有颜色、门的数量等属性,并且还具有一些方法,比如加速、刹车等。
面向对象编程有几个基本原则概念构成了它的基础:
对象
这是面向对象编程的基本单位。数据和对数据进行操作的函数被捆绑在一起称为对象。
类
当你定义一个类时,你定义了一个对象的蓝图。这实际上并没有定义任何数据,但它定义了类名的意义,即该类的对象将包含什么内容以及可以对该对象执行哪些操作。
抽象
数据抽象指的是仅向外界提供必要的信息,而隐藏其背景细节,即在程序中以所需的信息形式呈现而不展示细节。
例如,数据库系统隐藏了数据是如何存储、创建和维护的某些细节。同样地,C++ 类对外界提供了不同的方法,而不给出这些方法和数据的内部细节。
封装
封装是将数据和操作该数据的函数放在同一个地方的过程。在使用过程化语言时,并不清楚哪些函数作用于哪些变量,但面向对象编程为你提供了一个框架,将数据和相关的函数一起放置在同一对象中。
继承
面向对象编程中最实用的方面之一就是代码复用。正如其名字所暗示的那样,继承是从现有的类(基类)形成一个新的类(派生类)的过程。
这是面向对象编程的一个非常重要的概念,因为这一特性有助于减少代码量。
多态性
能够在不同的情况下使用同一个运算符或函数的能力,换句话说,就是赋予运算符或函数不同的含义或功能,称为多态性。Poly 指的是许多。也就是说,一个单一的函数或运算符可以根据使用情况以多种不同的方式运行,这就是多态性。
重载
重载的概念也是多态性的一个分支。当现有的运算符或函数被用来操作新的数据类型时,我们就说它是重载了。