贝利信息

C++中的友元函数(friend function)是什么?(访问私有成员)

日期:2026-01-07 00:00 / 作者:穿越時空
友元函数是类显式授权、可访问其私有和保护成员的非成员函数;需在类内用friend声明原型,定义在类外,常用于重载运算符、跨类协作等场景。

友元函数是C++中一种被类显式授权、可以访问该类私有(private)和保护(protected)成员的普通函数——它不是类的成员,也不受访问控制限制,但必须由类主动声明为friend

友元函数怎么声明和使用?

在类内部用friend关键字声明函数原型,不加public/private,也不带staticvirtual等修饰。该函数可以是全局函数,也可以是其他类的成员函数。

为什么需要友元函数?

当某些操作逻辑上不属于类的职责,却需要深度访问其内部数据时,友元提供了一种可控的“破例”机制。典型场景包括:

友元函数要注意什么?

它打破了封装性,所以要用得克制。常见注意事项:

基本上就这些。友元不是封装的敌人,而是封装的协作者——关键在“谁授权”和“为何授权”,而不是“能不能访问”。