在C++中,可以通过设置类访问修饰符来控制类的成员(包括数据成员和成员函数)的访问权限。C++提供了三种访问修饰符:public
、protected
和private
。
public
:如果类的成员被声明为public
,那么它可以被任何对象或类直接访问。这是默认的访问级别。class MyClass {
public:
int publicVar;
void publicFunc();
};
protected
:如果类的成员被声明为protected
,那么它们可以被该类的对象和派生类访问,但不能被其他非派生类访问。class MyClass {
protected:
int protectedVar;
void protectedFunc();
};
class DerivedClass : public MyClass {
void accessProtected() {
protectedVar = 10; // OK
protectedFunc(); // OK
}
};
private
:如果类的成员被声明为private
,那么它们只能被该类的成员函数访问,不能被任何对象或派生类访问。class MyClass {
private:
int privateVar;
void privateFunc();
public:
void accessPrivate() {
privateVar = 10; // OK
privateFunc(); // OK
}
};
class DerivedClass : public MyClass {
void accessPrivate() {
// privateVar = 10; // Error: cannot access private member of MyClass
// privateFunc(); // Error: cannot access private member of MyClass
}
};
通过合理地设置类访问权限,可以实现封装和数据隐藏,保护类的内部实现不被外部直接访问,提高代码的安全性和可维护性。