Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

C++ 教程

C++ 首页 C++ 简介 C++ 入门 C++ 语法 C++ 输出 C++ 注释 C++ 变量 C++ 用户输入 C++ 数据类型 C++ 运算符 C++ 字符串 C++ 数学 C++ 布尔值 C++ If...Else C++ Switch C++ While 循环 C++ For 循环 C++ Break/Continue C++ 数组 C++ 结构体 C++ 枚举 C++ 引用 C++ 指针

C++ 函数

C++ 函数 C++ 函数参数 C++ 函数重载 C++ 范围 C++ 递归

C++ 类

C++ OOP C++ 类/对象 C++ 类方法 C++ 构造函数 C++ 访问修饰符 C++ 封装 C++ 继承 C++ 多态 C++ 文件 C++ 异常 C++ 日期

C++ 数据结构

C++ 数据结构 & STL C++ 向量 C++ 列表 C++ 栈 C++ 队列 C++ 双端队列 C++ 集合 C++ 映射 C++ 迭代器 C++ 算法

C++ 如何做

C++ 加两个数 C++ 随机数

C++ 参考资料

C++ 参考资料 C++ 关键字 C++ <iostream> C++ <fstream> C++ <cmath> C++ <string> C++ <cstring> C++ <ctime> C++ <vector> C++ <algorithm>

C++ 示例

C++ 示例 C++ 现实世界中的例子 C++ 编译器 C++ 练习 C++ 测验 C++ 证书


C++ 封装


封装

封装 的含义是确保 “敏感” 数据对用户隐藏。为了实现这一点,您必须将类变量/属性声明为 private(无法从类外部访问)。如果您想让其他人读取或修改私有成员的值,您可以提供公共的 getset 方法。


访问私有成员

要访问私有属性,请使用公共的 “get” 和 “set” 方法

示例

#include <iostream>
using namespace std;

class Employee {
  private
    // 私有属性
    int salary;

  public
    // Setter
    void setSalary(int s) {
      salary = s;
    }
    // Getter
    int getSalary() {
      return salary;
    }
};

int main() {
  Employee myObj;
  myObj.setSalary(50000);
  cout << myObj.getSalary();
  return 0;
}
自己试一试 »

示例解释

属性 salaryprivate 的,访问权限有限。

公共 setSalary() 方法接收一个参数 (s),并将它赋值给 salary 属性 (salary = s)。

公共 getSalary() 方法返回私有 salary 属性的值。

main() 中,我们创建了一个 Employee 类的对象。现在我们可以使用 setSalary() 方法将私有属性的值设置为 50000。然后我们在对象上调用 getSalary() 方法来返回该值。


为什么要封装?

  • 将您的类属性声明为私有 (只要有可能) 被认为是一种良好的实践。封装可以确保您 (或其他人) 可以更改代码的一部分而不会影响其他部分。
  • 提高数据的安全性

×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.