49-C ++中的抽象

发布时间:2021-05-12 浏览次数:75 次

数据抽象是C ++中面向对象编程的最基本和最重要的功能之一。抽象意味着仅显示基本信息并隐藏细节。数据抽象是指仅向外界提供有关数据的基本信息,隐藏背景细节或实现。

考虑一个男人驾驶汽车的真实例子。这个人只知道按下加速器会增加汽车的速度,或者踩刹车会停止汽车,但是他不知道在按下加速器时速度实际上是如何增加的,他也不知道汽车的内部机制或在汽车上安装加速器,制动器等。这就是抽象。

使用类的抽象:我们可以使用类在C ++中实现抽象。类可帮助我们使用可用的访问说明符对数据成员和成员函数进行分组。一个类可以决定哪个数据成员对外界可见,而哪个则不可见。

头文件中的抽象:C ++中的另一种抽象类型是头文件。例如,考虑math.h头文件中存在的pow()方法。每当我们需要计算数字的幂时,只要简单地调用math.h头文件中存在的函数pow()并将数字作为参数传递,而无需知道该函数实际计算数字的幂所依据的基础算法。

使用访问说明符的抽象

访问说明符是在C ++中实现抽象的主要支柱。我们可以使用访问说明符对类成员实施限制。例如:

  • 在课程中被宣布为公开的成员,可以从程序中的任何位置进行访问。

  • 在班级中声明为私有的成员只能在班级内部访问。不允许从类之外的任何代码部分访问它们。

我们可以使用访问说明符提供的以上两个功能轻松实现抽象。说,可以在一个类中将定义内部实现的成员标记为私有。可以将需要提供给外界的重要信息标记为公开。这些公共成员可以访问班级内部的私人成员。

范例

#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。

数据抽象的优点

  • 帮助用户避免编写底层代码

  • 避免代码重复并提高可重用性。

  • 可以独立更改类的内部实现,而不会影响用户。

  • 仅向用户提供重要的详细信息,有助于提高应用程序或程序的安全性。