友元函数允许外部函数访问类私有或受保护成员,用于类间协作,提高代码灵活性,封装实现细节。缺点是破坏封装性,增加耦合,存在安全性问题。实战案例:Counter 类使用友元函数 Stats 来访问其受保护的 increment() 方法,从而进行协作。
友元函数是一种允许外部函数访问类中私有或受保护成员的特殊函数。它们通常用于支持类与其他类或函数之间的协作。
让我们以一个简单的 Counter
类为例,它用于计数对象:
class Counter { private: int count; protected: void increment() { count++; } };
为了让另一个类 Stats
访问 Counter
的受保护成员 increment()
,我们可以将它声明为 Counter
类的友元函数:
class Stats { public: void analyze(Counter& counter) { // Friend function can access protected method counter.increment(); } };
在主函数中,我们可以看到友元函数如何协作:
int main() { Counter counter; Stats stats; stats.analyze(counter); // 友元函数被调用 return 0; }
The above is the detailed content of What are the advantages and disadvantages of using friend functions?. For more information, please follow other related articles on the PHP Chinese website!