cpp_200706_友元函数_


2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
在C++编程语言中,友元(Friend)是类之间的一种特殊关系,它打破了封装的常规规则,允许一个类访问另一个类的私有(private)和保护(protected)成员。友元函数和友元类是实现这一机制的两种方式。 **友元函数** 是不在被访问类的成员函数中定义,但被声明为该类的朋友,从而能够访问类的私有和保护成员。在C++中,友元函数的声明通常放在类的定义内部,用 `friend` 关键字表示。例如: ```cpp class MyClass { private: int privateData; public: friend void friendFunction(MyClass& obj); }; void friendFunction(MyClass& obj) { // 作为友元函数,可以访问MyClass的私有成员 obj.privateData = 10; } ``` 在这个例子中,`friendFunction` 被声明为 `MyClass` 的友元,因此它可以访问 `MyClass` 的私有成员 `privateData`。如果尝试在非友元函数中直接访问 `privateData`,编译器会报错。 友元函数有以下几个特点: 1. **非成员函数**:友元函数不是类的成员,它们有自己的作用域,可以独立于任何类存在。 2. **访问权限**:友元函数可以访问其友元类的私有和保护成员,但这种访问权限并不传递,即友元函数不能让其他函数或类间接访问友元类的私有和保护成员。 3. **不继承**:子类不会自动继承父类的友元关系。如果需要,必须在子类中再次声明。 **友元类** 是一个类被声明为另一个类的友元,这意味着该友元类的所有成员函数都可以访问被友元化的类的私有和保护成员。例如: ```cpp class FriendClass { public: void accessPrivateData(MyClass& obj) { // 作为友元类,FriendClass的所有成员函数都可以访问MyClass的私有成员 obj.privateData = 20; } }; class MyClass { private: int privateData; friend class FriendClass; // 声明FriendClass为友元类 }; ``` 友元类有以下特点: 1. **类间关系**:友元类和被友元化的类之间建立了特殊的关系,允许前者访问后者的私有和保护成员。 2. **成员函数特权**:友元类的任何成员函数都可以访问其友元类的私有和保护成员。 3. **谨慎使用**:由于友元类破坏了封装性,因此在设计时需谨慎考虑,避免过度使用导致代码难以理解和维护。 总结来说,C++中的友元机制是为了提供更灵活的访问控制,允许在特定情况下打破封装,以实现某些特定的需求。然而,过度使用友元可能会降低代码的可维护性和安全性,因此在实际编程中应谨慎使用,并尽可能保持类的封装性。通过学习和理解友元函数和友元类的概念及其应用,可以更好地掌握C++的面向对象编程技术。


































































- 1


- 粉丝: 111
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 技工院校语文教学中信息化平台的建设探讨.docx
- 数据库存储单元在CBTC系统中的应用与研究的开题报告.docx
- 计算机组网技术实训报告.doc
- PMP证书好考吗-通过率怎么样.pdf
- 2023年管理系统中计算机应用考点版排版完毕直接打印国际贸易专业.doc
- 基于单片机的城市智能交通灯控制系统的设计.doc
- 2023年全国计算机等级考试二级C语言上机题库.doc
- 计算机一级msoffice课件教学教案.ppt
- 电力线载波通信系统.pptx
- 2023年网络管理员考试全程指导.docx
- 基于plc的交流电机控制系统设计外文翻译标准版(1).doc
- 2023年全国自学考试计算机网络安全试题及答案.doc
- linux引导和关机.ppt
- 第5章第三方物流项目管理ppt课件.ppt
- C语言第4章 选择结构 PPT.ppt
- 计算机基础计算机系统概述.ppt


