立即注册 登录
GameMale 返回首页

白冥的个人空间 https://www.gamemale.com/?732921 [收藏] [复制] [RSS]

日志

【C++编程】友元函数与友元类的优缺点

热度 115已有 223 次阅读2024-4-1 19:29 |个人分类:编程|系统分类:兴趣分享

编程语言C++的友元函数或友元类可以在多个不同的类之间工作,试想一下,如果出现必须同时访问不同的类的私有或受保护成员,没有友元,你必须定义多个不必要的公有方法和辅助函数,增加不必要的代码量。而有了友元,就可以大大减少这些不必要的麻烦。
但是友元也有很大的缺陷:
1、各种目标类给予了友元绝对信任,会导致目标类们之间的关系错综复杂,难以理解和维护;
2、突破了类原本的封装性,封装的目的是安全,使用友元又使类成员的安全性无法保障;
3、友元关系不具备交换性(A类是B类的友元,B类不一定是A类的友元)、继承性(若C类继承自A类,C类却不一定是B类的友元)、传递性(A类是B类的友元,B类是C类的友元,A类不一定是C类的友元),并不具备良好性质
代替方案:
如果不是一定要用友元,建议使用公共接口类代替
103

震惊

感谢
1

关心
11

加油

有爱

刚表态过的朋友 (115 人)

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

文字版|手机版|小黑屋|GameMale

GMT+8, 2024-5-14 16:20 , Processed in 0.042193 second(s), 13 queries , Redis On.

Copyright © 2013-2024 GameMale

All Rights Reserved.