在 C++ 中,类的权限修饰符用于控制类成员(如变量、函数、构造函数等)的访问级别。权限修饰符是面向对象编程中封装特性的一部分,主要包括三种类型:public
、protected
、和 private
。以下是这三种修饰符的详细说明和用法:
1. public
- 访问范围:公开的成员可以在任何地方被访问,无论是类的内部还是外部。
- 用法:通常用于那些需要外部访问的接口,比如类的某些方法和构造函数。
示例
class MyClass {
public:
int x; // 公开的变量,可在类外部访问
MyClass() { x = 5; }
void display() { std::cout << "Value: " << x << std::endl; }
};
2. protected
- 访问范围:受保护的成员在类内部和派生类(子类)中可访问,但不能通过类的对象直接访问。
- 用法:通常用于那些需要在继承关系中被访问,但不希望公开给类外部使用的成员。
示例
class Base {
protected:
int y;
public:
Base() { y = 10; }
};
class Derived : public Base {
public:
void display() { std::cout << "Protected value: " << y << std::endl; }
};
3. private
- 访问范围:私有成员只能被其类内部的函数访问,包括友元函数(如果有的话)。它们不能被类外部的代码或派生类访问。
- 用法:用于隐藏数据和实现细节,提供封装。
示例
class MyClass {
private:
int z; // 私有变量,只能在类内部访问
public:
MyClass() { z = 15; }
void display() { std::cout << "Private value: " << z << std::endl; }
};
实用说明
- 在定义类时,如果没有指定任何访问修饰符,则默认成员的访问权限为
private
。这与结构体不同,结构体的默认访问权限是public
。 - 确切使用哪种访问修饰符取决于你希望如何控制对类成员的访问。合理的权限设计可以增强代码的安全性和健壮性。
通过使用这些权限修饰符,C++ 程序员可以精确控制类成员的访问级别,从而实现高效和安全的数据封装。