Dalam C++, fungsi rakan boleh mengakses semua ahli kelas awam, dilindungi dan persendirian, tetapi akses kepada ahli persendirian adalah terhad dan hanya boleh dilakukan apabila fungsi ahli kelas dipanggil.
Apakah fungsi kawan?
Fungsi rakan ialah fungsi khas dalam C++ yang boleh mengakses ahli kelas peribadi dan dilindungi. Fungsi rakan mesti diisytiharkan di luar definisi kelas.
Taip ahli yang fungsi rakan boleh akses
Fungsi rakan boleh mengakses ahli jenis berikut:
Kes praktikal
Pertimbangkan kod berikut:
class MyClass { private: int m_num; public: MyClass(int num) : m_num(num) {} friend void print_num(MyClass& obj) { std::cout << obj.m_num << std::endl; } }; int main() { MyClass obj(42); print_num(obj); // 友元函数访问私有成员 return 0; }
Hasil keluaran:
42
Dalam contoh ini, print_num() ialah fungsi rakan MyClass. Ia boleh mengakses m_num ahli persendirian walaupun ia bukan fungsi ahli MyClass.
Akses Terhad
Perlu diingatkan bahawa akses fungsi rakan kepada ahli persendirian adalah terhad. Fungsi rakan hanya boleh mengakses ahli persendirian apabila fungsi ahli kelas dipanggil. Dengan kata lain, fungsi rakan tidak boleh mengakses ahli persendirian secara langsung dari luar.
Atas ialah kandungan terperinci Apakah jenis ahli yang boleh mengakses fungsi rakan C++?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!