友元

类的封装特性会将私有成员保护起来,外部函数和其他类无法直接访问,但在部分特殊场景下,需要外部函数或者其他类直接访问类的私有成员,这时就可以使用友元。友元分为友元函数和友元类两种,关键字为friend。

友元函数可以分为全局友元函数和成员友元函数,在类内声明友元函数后,该函数就拥有访问这个类所有私有成员和保护成员的权限,无需通过公有接口间接调用。友元类则是将一个类声明为另一个类的友元,友元类中的所有成员函数,都可以访问当前类的私有数据。

同时我也牢记了友元的重要特点:友元关系不具备传递性,也不具备继承性。比如A是B的友元,B是C的友元,A并不会自动成为C的友元;并且父类的友元,不会自动成为子类的友元。另外友元是单向的,我声明你为我的友元,我并不能直接访问你的私有成员。

在学习中我也明白,封装是面向对象的核心原则,友元其实是对封装性的破坏。它虽然可以简化代码、提高程序运行效率,省去繁琐的接口调用,但滥用友元会破坏数据安全性,降低代码的可维护性。所以日常编程中不能随意使用友元,只有在必须直接访问私有成员、提升代码效率的特殊场景下,才谨慎使用。

posted @ 2026-06-21 19:45  秦好  阅读(4)  评论(0)    收藏  举报