C++ 访问说明符


访问说明符

到现在为止,你已经非常熟悉了public出现在我们所有类示例中的关键字:

示例

class MyClass {  // The class
  public:        // Access specifier
    // class members goes here
};
亲自试一试 »

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

但是,如果我们希望成员是私密的并且对外界隐藏怎么办?

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

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

在下面的例子中,我们展示了之间的差异publicprivate成员:

示例

class MyClass {
  public:    // Public access specifier
    int x;   // Public attribute
  private:   // Private access specifier
    int y;   // Private attribute
};

int main() {
  MyClass myObj;
  myObj.x = 25;  // Allowed (public)
  myObj.y = 50;  // Not allowed (private)
  return 0;
}

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

error: y is private
亲自试一试 »

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

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

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

示例

class MyClass {
  int x;   // Private attribute
  int y;   // Private attribute
};