C++中的可见性模式通过访问控制修饰符来实现,主要有private、protected和public三种。
- private:private成员在类外部是不可见的,只有在类内部可以访问。这个成员对外是隐藏的,只有该类的成员函数可以访问。
class MyClass {
private:
int privateVar;
public:
void myFunction() {
privateVar = 10; // 可以访问private变量
}
};
- protected:protected成员在类的子类中可以访问,但在类外部是不可见的。protected成员可以被派生类访问,但不能被外部类访问。
class BaseClass {
protected:
int protectedVar;
};
class SubClass : public BaseClass {
public:
void myFunction() {
protectedVar = 10; // 可以访问protected变量
}
};
- public:public成员在类外部和类内部都可以访问。这个成员对外是可见的,任何地方都可以访问。
class MyClass {
public:
int publicVar;
};
int main() {
MyClass obj;
obj.publicVar = 10; // 可以访问public变量
}
通过合理地使用这些访问控制修饰符,可以控制类的成员对外部的可见性,增强代码的封装性和安全性。