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++ 面向对象编程 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++ 访问控制符


访问控制符

到目前为止,您已经对我们所有类示例中出现的 public 关键字非常熟悉。

示例

class MyClass {  // 类
  public:        // 访问控制符
    // 类成员在此
};
试试看 »

public 关键字是访问控制符。 访问控制符定义了如何访问类的成员(属性和方法)。在上例中,成员是 public - 这意味着它们可以从代码外部访问和修改。

但是,如果我们想让成员私有并对外部世界隐藏怎么办?

在 C++ 中,有三种访问控制符

  • public - 成员可以从类外部访问
  • private - 成员不能从类外部访问(或查看)
  • protected - 成员不能从类外部访问,但可以在继承类中访问。您将在稍后了解有关 继承 的更多信息。

在以下示例中,我们将演示 publicprivate 成员之间的差异

示例

class MyClass {
  public:    // 公共访问控制符
    int x;   // 公共属性
  private:   // 私有访问控制符
    int y;   // 私有属性
};

int main() {
  MyClass myObj;
  myObj.x = 25;  // 允许(公共)
  myObj.y = 50;  // 不允许(私有)
  return 0;
}

如果您尝试访问私有成员,则会发生错误

error: y is private
试试看 »

注意:可以使用同一个类中的公共方法来访问类的私有成员。请参阅下一章 (封装) 以了解如何做到这一点。

提示:将您的类属性声明为私有(只要您能做到)被认为是良好的做法。这将减少您(或其他人)弄乱代码的可能性。这也是 封装 概念的主要成分,您将在下一章中了解更多相关信息。

注意:如果未指定访问控制符,则默认情况下,类的所有成员均为 private

示例

class MyClass {
  int x;   // 私有属性
  int y;   // 私有属性
};

×

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.