C++是面向对象的编程语言,对象就是面向对象程序设计的核心。所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念。C++面向对象编程有三大特性,它们是封装、继承和多态。本文主要介绍C++ 面向对象 封装。

1、封装

封装可以隐藏实现的细节,让使用者只能通过实现写好的访问方法来访问这些字段,这样一来我们只需要在这些方法中增加逻辑控制,限制对数据的不合理访问。方便数据检查,有利于于保护对象信息的完整性。便于修改,提高代码的可维护性。实现良好的封装,需要从两个方面考虑:

把字段(成员变量)和实现细节隐藏起来,不允许外部直接访问

把方法暴露出来,让方法控制这些成员变量进行安全的访问和操作

所以,封装的含义是确保对用户隐藏敏感数据。为此,必须:

1)将类变量/属性声明为private

2)提供公共的get和set方法来访问和更新private变量的值

2、get和set函数方法

private变量只能在同一类中访问(外部类无法访问它)。 但是,如果我们提供公共的get和set方法,则可以访问它们。

get方法返回变量值,而set方法设置该值。

例如,

#include <iostream>
using namespace std;
class Employee {
  private:
    // 私有成员变量
    int salary;
  public:
    // set方法
    void setSalary(int s) {
      salary = s;
    }
    // set方法
    int getSalary() {
      return salary;
    }
};
int main() {
  Employee myObj;
  myObj.setSalary(50000);
  cout << myObj.getSalary();
  return 0;

}

3、封装的好处

1)更好地控制类的属性和方法

2)可以将类属性设置为只读(如果仅使用get方法),也可以设置为只写(如果仅使用set方法)

3)更加灵活,程序员可以更改代码的一部分而不影响其他部分

4)增强数据安全性

推荐文档