Fungsi rakan membenarkan fungsi luaran mengakses ahli kelas peribadi atau dilindungi, yang digunakan untuk kerjasama antara kelas, meningkatkan fleksibiliti kod dan merangkum butiran pelaksanaan. Kelemahannya ialah ia memusnahkan enkapsulasi, meningkatkan gandingan dan mempunyai masalah keselamatan. Contoh praktikal: Kelas Counter bekerjasama dengan menggunakan fungsi rakan Stats untuk mengakses kaedah increment() dilindunginya.
Fungsi rakan ialah fungsi khas yang membolehkan fungsi luaran mengakses ahli peribadi atau dilindungi kelas. Ia sering digunakan untuk menyokong kerjasama antara kelas dan kelas atau fungsi lain.
Mari kita ambil kelas Counter
ringkas sebagai contoh, yang digunakan untuk mengira objek: 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(); } };
Stats
mengakses Ahli yang dilindungi <code>increment()
>Counter, kami boleh mengisytiharkannya sebagai fungsi rakan kelas Counter
: int main() { Counter counter; Stats stats; stats.analyze(counter); // 友元函数被调用 return 0; }
Atas ialah kandungan terperinci Apakah kelebihan dan kekurangan menggunakan fungsi rakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!