c++类成员的访问范围
来源:千锋教育
发布人:zyh
2023-05-31
推荐
在 C++ 中,类的成员可以设置不同的访问权限,以控制对这些成员的访问范围。C++ 中有三种访问权限修饰符:public、protected 和 private。
public:公有访问权限是最开放的权限,表示该成员对外部代码是可见和可访问的。公有成员可以在类内部和类外部访问。
protected:保护访问权限介于公有和私有之间,表示该成员对外部代码是不可见的,但对派生类是可见的。保护成员可以在类内部和派生类中访问,但不能在类外部访问。
private:私有访问权限是最严格的权限,表示该成员对外部代码和派生类都是不可见的。私有成员只能在类内部访问。
默认情况下,类的成员的访问权限是 private,除非显式指定其他访问权限。
以下是一个示例,演示了不同访问权限修饰符的使用:
class MyClass {
public:
int publicVar; // 公有成员变量
void publicFunc(); // 公有成员函数
protected:
int protectedVar; // 保护成员变量
void protectedFunc(); // 保护成员函数
private:
int privateVar; // 私有成员变量
void privateFunc(); // 私有成员函数
};
void MyClass::publicFunc() {
// 可以访问公有、保护和私有成员
publicVar = 10;
protectedVar = 20;
privateVar = 30;
}
void MyClass::protectedFunc() {
// 可以访问保护和私有成员
protectedVar = 40;
privateVar = 50;
}
void MyClass::privateFunc() {
// 只能访问私有成员
privateVar = 60;
}
int main() {
MyClass obj;
obj.publicVar = 100; // 可以访问公有成员变量
obj.publicFunc(); // 可以调用公有成员函数
//obj.protectedVar = 200; // 不可以访问保护成员变量,会导致编译错误
//obj.protectedFunc(); // 不可以调用保护成员函数,会导致编译错误
//obj.privateVar = 300; // 不可以访问私有成员变量,会导致编译错误
//obj.privateFunc(); // 不可以调用私有成员函数,会导致编译错误
return 0;
}
通过设置适当的访问权限,我们可以控制类的成员在不同的上下文中的可见性和可访问性,从而实现对类的封装和数据隐藏。