C++ 面向对象
C++ 编程的主要目的是为 C 编程语言添加面向对象特性,而 C 语言本身就是最强大的编程语言之一。
纯面向对象编程的核心是在代码中创建具有特定属性和方法的 object。在设计 C++ 模块时,我们试图将整个世界视为 object 的形式。例如,一辆车就是一个 object,它具有某些属性,如颜色、门数等。它还具有某些方法,如加速、刹车等。
面向对象编程的基础由几个主要概念构成 —
Object
这是面向对象编程的基本单元。即数据和操作数据的函数被捆绑为一个称为 object 的单元。
Class
当你定义一个 class 时,你定义了一个 object 的蓝图。这并不实际定义任何数据,但它定义了 class 名称的含义,即 class 的 object 将包含什么以及可以对该 object 执行什么操作。
Abstraction
数据 abstraction 指的是,只向外部世界提供必要信息并隐藏其背景细节,即在程序中表示所需信息而不呈现细节。
例如,数据库系统隐藏了数据存储、创建和维护的某些细节。类似地,C++ class 向外部世界提供不同的方法,而不透露这些方法和数据的内部细节。
Encapsulation
Encapsulation 是将数据及其操作该数据函数放置在同一位置。在使用过程式语言时,并不清楚哪些函数操作哪些变量,但面向对象编程提供了框架,将数据和相关函数放置在同一个 object 中。
Inheritance
面向对象编程最有用的方面之一是代码可重用性。正如名称所示,Inheritance 是从现有 class(称为 base class)形成新 class(称为 derived class)的过程。
这是面向对象编程的一个非常重要的概念,因为此特性有助于减少代码大小。
Polymorphism
能够以不同方式使用 operator 或 function,即为 operator 或 function赋予不同含义或功能的特性称为 polymorphism。Poly 意为多。即单个 function 或 operator 根据使用方式以多种不同方式工作的特性称为 polymorphism。
Overloading
Overloading 概念也是 polymorphism 的一个分支。当现有 operator 或 function 被使其操作新 data type 时,它就被称为 overloaded。