在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
}
};
通過合理地設置類訪問權限,可以實現封裝和數據隱藏,保護類的內部實現不被外部直接訪問,提高代碼的安全性和可維護性。