友元函数(Friend Function)是 C++ 中一种特殊的函数,它虽然不是类的成员函数,但可以直接访问类的 ** 私有(private)和保护(protected)** 成员。这打破了类的封装性,但在某些场景下(如运算符重载、需要频繁访问类内部数据的辅助函数)能提供更灵活的实现方式。
友元函数的特点
-
破坏封装性
普通函数无法访问类的私有 / 保护成员,但友元函数可以绕过访问控制,直接操作类的内部数据。这在需要频繁访问私有成员时能减少代码冗余,但也会降低类的封装性和安全性。 -
声明方式
在类定义中使用friend
关键字声明友元函数,格式如下:cpp
class MyClass { private: int privateVar; public: // 声明友元函数(函数原型) friend void friendFunc(MyClass& obj); // 非成员函数 };
-
非成员函数
友元函数不属于类的成员,因此不能通过类