1. 公有(public)访问权限
这些访问权限提供了类成员的封装性和安全性,允许程序员控制哪些部分的数据和功能可以被外部直接访问和修改,从而提高代码的可维护性和安全性。
- 声明方式:使用
public:
关键字将成员变量和成员函数声明在公有部分。 - 访问权限:公有成员在类的外部和内部均可以访问,没有访问限制。
- 用途:公有成员通常用于定义类的接口,外部代码可以直接访问和调用公有成员,实现类的功能。
class MyClass { public: int publicVar; void publicFunc() { // 可以访问类的私有和保护成员 privateVar = 10; protectedVar = 20; } private: int privateVar; protected: int protectedVar; };
2. 私有(private)访问权限
- 声明方式:使用
private:
关键字将成员变量和成员函数声明在私有部分。 - 访问权限:私有成员只能在定义它们的类的内部访问,外部代码无法直接访问私有成员。
- 用途:私有成员通常用于隐藏类的实现细节,只能通过类的公有接口(公有成员函数)来间接访问和修改私有数据。
-
class MyClass { private: int privateVar; public: void setPrivateVar(int value) { privateVar = value; } };
3. 保护(protected)访问权限
- 声明方式:使用
protected:
关键字将成员变量和成员函数声明在保护部分。 - 访问权限:保护成员可以在定义它们的类的内部访问,也可以在派生类中访问。外部代码无法直接访问保护成员。
- 用途:保护成员通常用于派生类继承使用,它们对于外部代码来说是不可见的,但可以在派生类中继承和访问,从而实现类的继承和扩展。
class Base { protected: int protectedVar; }; class Derived : public Base { public: void setProtectedVar(int value) { protectedVar = value; // 可以访问基类的保护成员 } };
总结
- 公有(public):任何地方都可以访问,包括类的外部和派生类。
- 私有(private):只有类的成员函数可以访问,外部代码无法直接访问。
- 保护(protected):只有类的成员函数和派生类可以访问,外部代码无法直接访问。