C++ 访问修饰符
访问修饰符
到目前为止,您已经非常熟悉出现在我们所有类实例中的 public
关键字:
实例
#include <iostream>
using namespace std;
class MyClass { // The class
public: // Public access specifier
int x; // Public attribute (int variable)
};
int main() {
MyClass myObj; // Create an object of MyClass
// Access attributes and set values
myObj.x = 15;
// Print values
cout << myObj.x;
return 0;
}
public
关键字是访问修饰符。访问修饰符定义如何访问类的成员(属性和方法)。在上面的例子中,成员是公共的——这意味着可以从代码之外访问和修改它们。
然而,如果我们想让成员们保持隐私,对外界保密,那该怎么办?在 C++ 中,有三个访问修饰:
- public - 成员可以从课堂外访问
- private - 无法从类外访问(或查看)成员
- protected - 成员不能从类外部访问,但是可以在继承的类中访问。稍后您将了解有关继承的更多信息。
在下面的实例中,我们将演示 public
成员和 private
成员之间的差异:
实例
#include <iostream>
using namespace std;
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 (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 属性
};