freeCodeCamp/guide/chinese/cplusplus/object-oriented-programming/index.md

78 lines
3.3 KiB
Markdown
Raw Normal View History

---
title: Object Oriented Programming using C++
localeTitle: 面向对象的C ++编程
---
## 面向对象的C ++编程
面向对象编程简称OOP旨在实现编程中的继承隐藏和多态等真实世界实体。 OOP的主要目的是将数据和对其进行操作的函数绑定在一起这样除了该函数之外其他任何代码都不能访问这些数据。
让我们了解面向对象编程语言的不同特征:
### 宾语:
对象是面向对象系统中的基本运行时实体,对象是类的实例,这些是定义的用户定义数据类型。
```cpp
class person
{
char name[20];
int id;
public:
void getdetails(){}
};
int main()
{
person p1; //p1 is an object
}
```
对象占用内存中的空间并具有相关的地址如pascal或结构中的记录或C中的并集。
执行程序时,对象通过相互发送消息进行交互。
每个对象都包含操作数据的数据和代码。对象可以在不必了解彼此数据或代码的详细信息的情况下进行交互。知道接受的消息类型和对象返回的响应类型就足够了。
### 类:
类是数据和函数或方法的蓝图。班级不占用任何空间。
```cpp
class class_name
{
private:
//data members and member functions declarations
public:
//data members and member functions declarations
protected:
//data members and member functions declarations
};
```
类是用户定义的数据类型如C中的结构和联合。
默认情况下,类变量是私有的,但在结构的情况下它是公共的。在上面的例子中,人是一个类。
### 封装和数据抽象:
将数据和函数包装(组合)到单个单元中称为封装。外部世界无法访问这些数据,只有那些包含在类中的函数才能访问它。这种数据与程序直接访问的隔离称为数据隐藏或信息隐藏。
数据抽象是指仅向外界提供所需信息并隐藏实现细节。例如将具有公共函数的类Complex视为getReal和getImag。我们可以将类实现为大小为2的数组或两个变量。抽象的优点是我们可以在任何时候改变实现Complex类的用户不会受到影响因为我们的方法接口保持不变。如果我们的实施是公开的我们就无法改变它。
### 遗产:
继承是一个类的对象获取另一个类的对象属性的过程。它支持层次分类的概念。继承提供可重用性。这意味着我们可以在不修改现有类的情况下向其添加其他功能。
### 多态性:
多态性意味着能够采用多种形式。操作可能在不同情况下表现出不同的行为。行为取决于操作中使用的数据类型。
C ++支持运算符重载和函数重载。运算符重载是使运算符在不同实例中展示不同行为的过程。函数重载使用单个函数名来执行不同类型的任务。多态性广泛用于实现继承。
### 动态绑定:
在动态绑定中,响应函数调用而执行的代码在运行时决定。 C ++具有支持此功能的虚拟功能。
### 消息传递:
对象通过彼此发送和接收信息来彼此通信。对象的消息是执行过程的请求,因此将调用接收对象中生成所需结果的函数。消息传递涉及指定对象的名称,函数的名称和要发送的信息。