数据抽象是C++中面向对象编程的最基本和最重要的功能之一。抽象意味着仅显示基本信息并隐藏细节。数据抽象是指仅向外界提供有关数据的基本信息, 隐藏背景细节或实现。
考虑一个男人驾驶汽车的真实例子。这个人只知道按下加速器会增加汽车的速度, 或者踩刹车会停止汽车, 但他不知道在按下加速器时速度实际上是如何增加的, 他也不知道汽车的内部机制或在汽车上安装加速器, 制动器等。这就是抽象。
使用类的抽象:
我们可以使用类在C++中实现抽象。类可帮助我们使用可用的访问说明符对数据成员和成员函数进行分组。类可以决定哪个数据成员对外部世界可见, 而哪些则不可见。
头文件中的抽象:头文件是C++中的另一种抽象类型。例如, 考虑math.h头文件中存在的pow()方法。每当我们需要计算数字的幂时, 我们只需调用math.h头文件中存在的函数pow()并将数字作为参数传递, 而无需知道该函数实际计算数字的幂所依据的基础算法。
使用访问说明符的抽象
访问说明符是在C++中实现抽象的主要支柱。我们可以使用访问说明符对类成员实施限制。例如:
- 声明为public在一个类中, 可以从程序中的任何位置进行访问。
- 声明为private在类中, 只能从类内部访问。不允许从类外的任何代码部分访问它们。
我们可以使用访问说明符提供的以上两个功能轻松实现抽象。例如, 定义内部实现的成员可以在类中标记为私有。可以将需要提供给外界的重要信息标记为公开。这些公共成员可以访问类内部的私人成员。
例子:
#include <iostream>
using namespace std;
class implementAbstraction
{
private :
int a, b;
public :
// method to set values of
// private members
void set( int x, int y)
{
a = x;
b = y;
}
void display()
{
cout<< "a = " <<a << endl;
cout<< "b = " << b << endl;
}
};
int main()
{
implementAbstraction obj;
obj.set(10, 20);
obj.display();
return 0;
}
输出如下:
a = 10
b = 20
你可以在上面的程序中看到我们不允许直接访问变量a和b, 但是可以调用函数set()来设置a和b中的值, 并且可以调用函数display()来显示a和b的值b。
数据抽象的优势:
- 帮助用户避免编写底层代码
- 避免代码重复并提高可重用性。
- 可以独立更改类的内部实现, 而不会影响用户。
- 仅向用户提供重要的详细信息, 有助于提高应用程序或程序的安全性。
如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。
被认为是行业中最受欢迎的技能之一, 我们拥有自己的编码基础C++ STL通过激烈的问题解决过程来训练和掌握这些概念。