C++ 访问说明符

访问说明符

访问说明符控制如何访问类的成员(属性和方法)。

它们有助于保护数据和组织代码,以便只有正确的部分可以被看到或更改。

使用访问说明符

public 关键字是一个访问说明符

在下面的例子中,成员是 public 的——这意味着它们可以从代码外部访问和修改:

实例

class MyClass {  // 类
  public:        // 访问说明符
    // 类成员写在这里
};

亲自试一试

但是,如果我们希望成员是私有的并对外部世界隐藏呢?

在 C++ 中,有三个访问说明符:

  • public - 成员可以从类外部访问
  • private - 成员不能从类外部访问(或查看)
  • protected - 成员不能从类外部访问,但是,它们可以在继承的类中访问。您将在稍后学习更多关于继承的知识。

Private

声明为 private 的成员不能从类外部访问。

在下面的例子中,我们演示了 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;   // 私有属性
};

Protected

声明为 protected 的成员不能从类外部访问,但它们可以在子类中访问。

您将在后面的章节中了解更多关于继承的知识。

实际应用示例

  • Public:就像您家的前门——任何人都可以进来。
  • Private:就像一个锁着的抽屉——只有主人(或信任的朋友)可以打开它。
  • Protected:就像一个只允许家人进入的房间——孩子(子类)可以进入,其他人不能。