在C++中,访问控制修饰符(Access Control Modifiers)用于控制类的成员(成员变量和成员函数)的访问权限。这些修饰符分为三种:public、protected和private。它们定义了成员可以在何处访问,具体如下:
public:
public成员在类内部和外部都是可访问的。
这意味着任何地方都可以直接访问类的public成员。
protected:
protected成员在类内部可访问,但在类外部是不可访问的。
子类(派生类)可以访问其父类的protected成员。
private:
private成员只能在类的内部访问,对外部是隐藏的。
不能被类的子类访问。
下面是一个示例,说明这些访问控制修饰符的使用:
#include class MyClass {public: int publicVar; // public 成员 void PublicMethod() { std::cout << "Public method." << std::endl; }protected: int protectedVar; // protected 成员 void ProtectedMethod() { std::cout << "Protected method." << std::endl; }private: int privateVar; // private 成员 void PrivateMethod() { std::cout << "Private method." << std::endl; }};// 上面 三种权限在这个类里面都是可以访问的class MyDerivedClass : public MyClass {public: void AccessProtected() { protectedVar = 42; // 子类可以访问父类的 protected 成员 ProtectedMethod(); // 子类可以调用父类的 protected 方法 }};int main() { MyClass myObj; myObj.publicVar = 10; // 可以直接访问 public 成员 myObj.PublicMethod(); // 可以调用 public 方法 // 下面的代码无法通过编译,因为 protectedVar 和 ProtectedMethod 是 protected 的 // myObj.protectedVar = 20; // myObj.ProtectedMethod(); MyDerivedClass derivedObj; derivedObj.AccessProtected(); // 子类可以访问 protected 成员和方法 return 0;}
总结起来,访问控制修饰符允许你控制类的成员对外部的可见性和可访问性,从而实现封装的概念,隐藏类的内部实现细节并提供合适的访问接口。
来源地址:https://blog.csdn.net/wniuniu_/article/details/132568198