C++ 访问修饰符
访问修饰符
到目前为止,您已经非常熟悉出现在我们所有类实例中的 public 关键字:
实例
#include <iostream>using namespace std;class MyClass { // The classpublic: // Public access specifierint x; // Public attribute (int variable)};int main() {MyClass myObj; // Create an object of MyClass// Access attributes and set valuesmyObj.x = 15;// Print valuescout << myObj.x;return 0;}
public 关键字是访问修饰符。访问修饰符定义如何访问类的成员(属性和方法)。在上面的例子中,成员是公共的——这意味着可以从代码之外访问和修改它们。
然而,如果我们想让成员们保持隐私,对外界保密,那该怎么办?在 C++ 中,有三个访问修饰:
- public - 成员可以从课堂外访问
- private - 无法从类外访问(或查看)成员
- protected - 成员不能从类外部访问,但是可以在继承的类中访问。稍后您将了解有关继承的更多信息。
在下面的实例中,我们将演示 public 成员和 private 成员之间的差异:
实例
#include <iostream>using namespace std;class MyClass {public: // Public access specifierint x; // Public attributeprivate: // Private access specifierint y; // Private attribute};int main() {MyClass myObj;myObj.x = 25; // Allowed (x is public)myObj.y = 50; // Not allowed (y is private)return 0;}
如果试图访问私有成员,则会发生错误:
error: y is private
注意:可以在同一个类中使用公共方法访问类的私有成员。请参阅下一章(封装),了解如何做到这一点。
提示:将类属性声明为 private(尽可能频繁)被认为是一种好的做法。这将减少你自己(或其他人)弄乱代码的可能性。在下一章中,你将了解到更多关于封装的内容。
注意:默认情况下,如果不指定访问修饰符,则类的所有成员都是 private 私有的:
实例
class MyClass {int x; // Private 属性int y; // Private 属性};