Fungsi rakan dalam C++ boleh menyekat hak akses melalui penentu akses atau ruang nama untuk membenarkan hanya fungsi atau fungsi tertentu dalam ruang nama tertentu untuk mengakses ahli peribadi kelas.
C++ Penjelasan terperinci tentang fungsi rakan: Bagaimana untuk menyekat hak akses fungsi rakan?
Dalam C++, fungsi rakan ialah fungsi khas yang membolehkan fungsi luaran mengakses ahli peribadi kelas. Ia membolehkan kami mengakses data peribadi atau fungsi satu kelas di luar kelas lain, sekali gus memberikan fleksibiliti yang lebih besar dalam situasi tertentu.
Sekat hak akses fungsi rakan
Kami boleh mengehadkan hak akses fungsi rakan kepada ahli persendirian dengan menyekat pengisytiharan rakan. Terdapat dua cara untuk melakukan ini:
Kaedah 1: Menggunakan penentu akses
Kami boleh menyekat akses fungsi rakan menggunakan penentu akses (awam, dilindungi atau peribadi). Sintaksnya adalah seperti berikut:
class MyClass { private: // 私有成员只能被友元函数访问 friend void friendFunction(); };
Kaedah 2: Menggunakan ruang nama
Anda juga boleh menggunakan ruang nama untuk mengehadkan keterlihatan fungsi rakan. Sintaksnya adalah seperti berikut:
namespace MyNamespace { class MyClass { private: // 私有成员由 MyNameSpace 命名空间内部所有友元函数访问 friend class MyFriendClass; }; }
Kes praktikal
Andaikan kita mempunyai dua kelas berikut:
class Person { private: string name; int age; }; class FriendClass { public: // 可以访问私有成员,因为它是一个友元类 void printPersonDetails(Person person) { cout << person.name << ", " << person.age << endl; } };
Di sini, FriendClass
是 Person
类的友元类,因此它可以访问 name
和 age
dan ahli persendirian yang lain.
Jalankan contoh
int main() { Person person{"John Doe", 30}; FriendClass friendObj; friendObj.printPersonDetails(person); return 0; }
Output:
John Doe, 30
Atas ialah kandungan terperinci Penjelasan terperinci tentang fungsi rakan C++: Bagaimana untuk menyekat hak capaian fungsi rakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!