当前位置: 首页> 财经> 产业 > C++中类的访问权限及友元函数

C++中类的访问权限及友元函数

时间:2025/7/10 7:11:17来源:https://blog.csdn.net/GOLOJO/article/details/139350200 浏览次数:1次

目录

摘要

访问权限(Access Specifiers)

1. `private`

2. `protected`

3. `public`

友元函数(Friend Functions)

关键点

总结


摘要

C++中的访问权限(Access Specifiers -- privateprotectedpublic)和友元函数(Friend Functions)是面向对象编程中的重要概念,用于控制类成员的可见性和访问权限。

访问权限(Access Specifiers)

在C++中,访问权限分为三种:`private`、`protected` 和 `public`,它们决定了成员在类的内部和外部的可见性和访问权限。

1. `private`

- `private` 访问权限将成员声明为私有,只有类的成员函数可以访问私有成员,外部代码无法直接访问。
- 私有成员对于类的用户是隐藏的,只能在类的成员函数内部访问。

class MyClass {
private:int privateMember; // 私有成员public:void setPrivateMember(int value) {privateMember = value; // 可以在类的成员函数中访问私有成员}
};

2. `protected`

- `protected` 访问权限将成员声明为受保护的,类的成员函数和派生类的成员函数可以访问受保护成员,但外部代码无法直接访问。
- 受保护成员对于类的用户是隐藏的,只能在类的成员函数和派生类的成员函数内部访问。

class MyClass {
protected:int protectedMember; // 受保护成员public:void setProtectedMember(int value) {protectedMember = value; // 可以在类的成员函数中访问受保护成员}
};

3. `public`

- `public` 访问权限将成员声明为公共的,类的成员函数、派生类的成员函数以及外部代码都可以访问公共成员。
- 公共成员对于类的用户是可见的,可以在任何地方访问。

class MyClass {
public:int publicMember; // 公共成员void setPublicMember(int value) {publicMember = value; // 可以在类的成员函数中访问公共成员}
};

4. 友元函数(Friend Functions)

- 友元函数是一个独立于类的非成员函数,但具有与类成员相同的访问权限。
- 友元函数可以访问类的私有成员、受保护成员和公共成员。
- 友元函数通常用于提供与类相关的功能,但这些功能不属于类的一部分。

class MyClass {
private:int privateMember; // 私有成员public:// 声明友元函数friend void friendFunction(MyClass& obj);MyClass(int value) : privateMember(value) {}int getPrivateMember() {return privateMember;}
};// 定义友元函数
void friendFunction(MyClass& obj) {// 可以访问类的私有成员std::cout << "Private member value: " << obj.privateMember << std::endl;
}int main() {MyClass obj(10);friendFunction(obj); // 输出 "Private member value: 10"return 0;
}

关键点

1. private:
  - 用于隐藏类的内部实现细节,只有类的成员函数可以访问私有成员。
  - 通常用于存储类的内部状态和实现细节,外部代码无法直接访问。
  
2. protected:
  - 用于允许派生类访问基类的成员,但对于外部代码是隐藏的。
  - 通常用于实现继承机制,派生类可以访问受保护成员以扩展基类的功能。
  
3. public:

  - 用于提供类的接口,使得类的用户可以访问公共成员。
  - 通常将类的操作和服务作为公共成员提供给外部代码。

4. 友元函数:
  - 允许非成员函数访问类的私有成员和受保护成员。
  - 可以提供类相关的功能,但这些功能不属于类的一部分。

总结

1. `private`、`protected` 和 `public` 是C++中的三种访问权限,用于控制类成员的可见性和访问权限。
2. `private` 成员只能被类的成员函数访问,`protected` 成员可以被派生类访问,`public` 成员可以被任何代码访问。
3. 友元函数可以访问类的私有成员和受保护成员,但它不是类的成员函数,也不受访问权限控制。

在实际应用中根据自己的需求进行类访问权限的控制,这样可以使得某些重要的代码或区域可以得到更好的保护。

关键字:C++中类的访问权限及友元函数

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: