友元函數允許外部函數存取類別私有或受保護成員,用於類別間協作,提高程式碼靈活性,封裝實作細節。缺點是破壞封裝性,增加耦合,有安全性問題。實戰案例: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; }
以上是使用友元函數的優缺點有哪些?的詳細內容。更多資訊請關注PHP中文網其他相關文章!