C++ 访问说明符

访问说明符

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

实例

class MyClass {  // 类  
  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

注意:可以使用同一类中的公共方法来访问类的私有成员。请参阅下一章(封装)了解如何执行此操作。

提示:将类属性声明为私有(尽可能频繁)被认为是一种很好的做法。这将减少您自己(或其他人)弄乱代码的可能性。这也是封装概念的主要成分,您将在下一章中了解更多内容。

注意:默认情况下,如果您不指定访问说明符,类的所有成员都是私有的:

实例

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