C++ 数据抽象

C++ 数据抽象

  • 数据抽象是一种将必要的细节提供给外界并隐藏内部细节的过程,即仅在程序中表示必要的细节。
  • 数据抽象是一种基于程序的接口和实现细节的分离的编程技术。
  • 我们以真实生活中的空调为例,空调可以打开或关闭,改变温度,改变模式和其他外部组件(如风扇,摇摆)。但是,我们不知道空调的内部细节,即它的内部工作原理。因此,我们可以说空调将实现细节与外部接口分离。
  • C++提供了很高的抽象级别。例如,pow()函数用于计算一个数的幂,而不需要知道函数遵循的算法。

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

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

  • 使用类进行抽象
  • 在头文件中进行抽象。

C++ 数据抽象

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

在头文件中进行抽象: 另一种类型的抽象是头文件。例如,可以使用可用的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 the  power function
   std::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 variables
public:  
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;  
}  

输出:

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

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

抽象的优势

  • 类的实现细节对于无意中的用户级错误是受保护的。
  • 程序员不需要编写低级代码。
  • 数据抽象避免了代码重复,即程序员不必每次执行相似操作时都进行相同的任务。
  • 数据抽象的主要目的是重用代码和正确地将代码分割在各个类中。
  • 内部实现可以更改而不影响用户级别的代码。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程