📜  C++中的数据抽象

📅  最后修改于: 2020-10-16 07:10:57             🧑  作者: Mango

C++中的数据抽象

  • 数据抽象是仅向外界提供基本细节并隐藏内部细节(即仅表示程序中的基本细节)的过程。
  • 数据抽象是一种编程技术,它取决于接口的分隔和程序的实现细节。
  • 让我们以一个现实生活中的AC为例,可以打开或关闭AC,更改温度,更改模式以及其他外部组件(如风扇,摆轮)。但是,我们不知道AC的内部细节,即AC内部如何工作。因此,可以说AC将实现细节与外部接口分开。
  • C++提供了很高的抽象水平。例如,pow()函数用于计算数字的幂,而无需知道该函数遵循的算法。

在C++程序中,如果我们使用私有成员和公共成员来实现类,则它是数据抽象的一个示例。

数据抽象可以通过两种方式实现:

  • 使用类的抽象
  • 头文件中的抽象。

使用类进行抽象:可以使用类来实现抽象。一个类用于通过使用访问说明符将所有数据成员和成员函数分组为一个单元。类负责确定哪个数据成员在外部是可见的,哪些不是。

头文件中的抽象:头文件是另一种抽象类型。例如,可用的pow()函数用于计算数字的幂而不实际知道哪个算法函数用于计算幂。因此,我们可以说头文件对用户隐藏了所有实现细节。

访问说明符实现抽象:

  • 公共说明符:将成员声明为公共成员时,可以从程序的任何位置访问成员。
  • 私有说明符:将成员声明为私有时,只能由类的成员函数访问成员。

让我们来看一个简单的头文件抽象示例。

//程序来计算数字的幂。

#include 
#include
using namespace std;
int main()
{  
 int n = 4;
   int power = 3;
   int result = pow(n,power);         // pow(n,power) is the  power function
   std::cout << "Cube of n is : " <

输出:

Cube of n is : 64

在上面的示例中,pow()函数用于计算升为3的4。pow()函数存在于math.h头文件中,其中pow()函数的所有实现细节都被隐藏了。

让我们看一个使用类进行数据抽象的简单示例。

#include   
using namespace std;  
 class Sum  
{  
private: int x, y, z; // private variables
public:  
void add()  
{  
cout<<"Enter two numbers: ";  
cin>>x>>y;  
z= x+y;  
cout<<"Sum of two number is: "<

输出:

Enter two numbers:
3
6
Sum of two number is: 9

在上面的示例中,使用类实现了抽象。类“ Sum”包含私有成员x,y和z只能由该类的成员函数访问。

抽象的优点:

  • 该类的实现详细信息受到保护,免受无意的用户级别错误的影响。
  • 程序员不需要编写底层代码。
  • 数据抽象避免了代码重复,即程序员不必每次都执行相同的任务来执行类似的操作。
  • 数据抽象的主要目的是重用代码以及跨类对代码进行适当的划分。
  • 可以更改内部实现,而不会影响用户级别的代码。