48-用C++封装

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

通常,封装被定义为将数据和信息包装在单个单元中。在面向对象的编程中,封装被定义为将数据和操纵它们的功能绑定在一起。

考虑封装的真实示例,在公司中,有不同的部分,例如帐户部分,财务部分,销售部分等。财务部分处理所有财务交易并保留与财务相关的所有数据的记录。同样,销售部门处理所有与销售有关的活动,并保留所有销售记录。现在可能会出现这样的情况,由于某种原因,财务部门的官员需要特定月份的所有销售数据。在这种情况下,不允许他直接访问销售部分的数据。他将首先必须联系销售部门的其他人员,然后要求他提供特定数据。这就是封装。在这里,销售部门的数据和可以操纵这些数据的员工被包装在一个单独的名称“销售部门”中。

封装还导致数据抽象或隐藏。由于使用封装也隐藏了数据。在上面的示例中,任何部分(例如销售,财务或帐户)的数据都从任何其他部分隐藏。

在C ++中,可以使用Class和access修饰符实现封装。看下面的程序:

// c++ program to explain
// Encapsulation

#include<iostream>
using namespace std;

class Encapsulation
{
private:
  // data hidden from outside world
  int x;

public:
  // function to set value of
  // variable x
  void set(int a)
  {
    x = a;
  }

  // function to return value of
  // variable x
  int get()
  {
    return x;
  }
};

// main function
int main()
{
  Encapsulation obj;

  obj.set(5);

  cout << obj.get();
  return 0;
}

输出:

5

在上面的程序中,变量x被设为私有。只能使用类中存在的函数get()和set()来访问和操作此变量。因此,我们可以说在这里,变量x和函数get()和set()绑定在一起,不过就是封装。

访问说明符在封装中的作用

正如我们在上面的示例中看到的那样,访问说明符在C ++中实现封装中起着重要的作用。实现封装的过程可以分为两个步骤:

  1. 数据成员应使用私有访问说明符标记为私有

  2. 应当使用公共访问说明符将操纵数据成员的成员函数标记为公共