private: 在类的成员列表中使用 private 关键字表示该成员对外部是不可见的,只有在类的内部可以访问。private 成员对于类的用户(类的外部代码)是隐藏的,只有类的成员函数可以直接访问 private 成员。
class MyClass {
private:
int privateMember;
public:
void setPrivateMember(int value) {
privateMember = value;
}
};
protected: 在类的成员列表中使用 protected 关键字表示该成员对于类的外部是不可见的,但对于派生类是可见的。protected 成员对于类的用户(类的外部代码)是隐藏的,但可以在派生类中访问。
class BaseClass {
protected:
int protectedMember;
};
class DerivedClass : public BaseClass {
public:
void setProtectedMember(int value) {
protectedMember = value; // 在派生类中可以访问 protected 成员
}
};
区别总结:
private 成员对于类的外部和派生类都是不可见的。
protected 成员对于类的外部是不可见的,但对于派生类是可见的。
这些访问修饰符有助于实现封装,即隐藏类的实现细节,只暴露必要的接口。