C++[第二章]--访问控制
发布人:shili8
发布时间:2025-02-27 04:57
阅读次数:0
**C++ 第二章 -- 访问控制**
在 C++ 中,类的成员变量和函数可以被保护起来,以防止外部程序或其他类的对象访问它们。这种机制称为访问控制。
###1. 公开成员(public)
公开成员是可以直接访问的成员变量或函数,它们不需要任何权限就能被访问。
cppclass Person { public: std::string name; int age; void sayHello() { std::cout << "Hello, my name is " << name << " and I'm " << age << " years old." << std::endl; } };
在上面的例子中,`name` 和 `age` 是公开成员变量,可以直接访问。`sayHello()` 函数也是公开成员函数,可以被调用。
###2. 保护成员(protected)
保护成员是可以在同一个类或派生类中访问的成员变量或函数,但不能在外部程序中访问。
cppclass Person { public: std::string name; protected: int age; void sayHello() { std::cout << "Hello, my name is " << name << " and I'm " << age << " years old." << std::endl; } };
在上面的例子中,`name` 是公开成员变量,可以直接访问。`age` 是保护成员变量,只能在 `Person` 类或其派生类中访问。`sayHello()` 函数也是保护成员函数,只能在 `Person` 类或其派生类中调用。
###3. 私有成员(private)
私有成员是只能在同一个类中访问的成员变量或函数,不能在外部程序或其他类的对象中访问。
cppclass Person { public: std::string name; protected: int age; private: void sayHello() { std::cout << "Hello, my name is " << name << " and I'm " << age << " years old." << std::endl; } };
在上面的例子中,`name` 是公开成员变量,可以直接访问。`age` 是保护成员变量,只能在 `Person` 类或其派生类中访问。`sayHello()` 函数是私有成员函数,只能在 `Person` 类中调用。
###4. friend友元(friend)是可以访问类的所有成员变量和函数的特殊函数或类。
cppclass Person { public: std::string name; protected: int age; private: void sayHello() { std::cout << "Hello, my name is " << name << " and I'm " << age << " years old." << std::endl; } }; class Friend { public: void accessPerson(Person& person) { // 可以访问 Person 类的所有成员变量和函数 person.name = "John"; person.age =30; person.sayHello(); } };
在上面的例子中,`Friend` 类是 `Person` 类的友元类,可以访问 `Person` 类的所有成员变量和函数。
### 总结C++ 中的访问控制机制可以保护类的成员变量和函数不被外部程序或其他类的对象访问。公开成员、保护成员、私有成员和友元都是访问控制的不同方式,分别适用于不同的场景。