- 数据抽象是仅向外界提供基本细节并隐藏内部细节的过程, 即仅表示程序中的基本细节。
- 数据抽象是一种编程技术, 它依赖于接口的分隔和程序的实现细节。
- 让我们以一个现实生活中的AC为例, 可以打开或关闭AC, 更改温度, 更改模式以及其他外部组件(如风扇, 摆轮)。但是, 我们不知道AC的内部细节, 即AC内部如何工作。因此, 可以说, AC将实现细节与外部接口分开。
- C ++提供了很高的抽象水平。例如, pow()函数用于计算数字的幂, 而无需知道该函数遵循的算法。
数据抽象可以通过两种方式实现:
- 使用类的抽象
- 头文件中的抽象。
文章图片
使用类进行抽象:可以使用类来实现抽象。一个类用于通过使用访问说明符将所有数据成员和成员函数分组为一个单元。一个类负责确定哪个数据成员在外部是可见的, 哪个不是。
头文件中的抽象:头文件是另一种抽象类型。例如, 可用的pow()函数用于计算数字的幂而不实际知道哪个算法函数用于计算幂。因此, 我们可以说头文件对用户隐藏了所有实现细节。
访问说明符实现抽象:
- 公共说明符:将成员声明为公共成员时, 可以从程序的任何位置访问成员。
- 私有说明符:当成员被声明为私有时, 成员只能由类的成员函数访问。
//程序来计算数字的幂。
#include <
iostream>
#include<
math.h>
using namespace std;
int main(){ int n = 4;
int power = 3;
int result = pow(n, power);
// pow(n, power) is thepower functionstd::cout <
<
"Cube of n is : " <
<
result<
<
std::endl;
return 0;
}
输出:
Cube of n is : 64
在上面的示例中, pow()函数用于计算4的幂3。pow()函数存在于math.h头文件中, 其中pow()函数的所有实现细节都被隐藏了。
让我们看一个使用类抽象数据的简单示例。
#include <
iostream>
using namespace std;
class Sum{private: int x, y, z;
// private variablespublic:void add(){cout<
<
"Enter two numbers: ";
cin>
>
x>
>
y;
z= x+y;
cout<
<
"Sum of two number is: "<
<
z<
<
endl;
}};
int main(){Sum sm;
sm.add();
return 0;
}
【C++中的数据抽象】输出:
Enter two numbers:36Sum of two number is: 9
在上面的示例中, 使用类实现了抽象。类“ Sum”包含私有成员x, y和z只能由该类的成员函数访问。
抽象的优点
- 该类的实现详细信息受到保护, 免受用户意外错误的影响。
- 程序员不需要编写底层代码。
- 数据抽象避免了代码重复, 即程序员不必每次都执行相同的任务来执行类似的操作。
- 数据抽象的主要目的是重用代码以及跨类对代码进行适当的分区。
- 可以更改内部实现, 而不会影响用户级别的代码。
推荐阅读
- C++中的接口(抽象类)
- C++虚函数解析
- C++ this指针
- C++结构体用法
- C++静态static解释
- C++多态解析
- C++重载(函数和运算符)
- C++ OOP面向对象编程的概念
- C++对象和类解析