Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah fungsi rakan C++ mengakses ahli persendirian?
Terdapat dua cara untuk fungsi rakan mengakses ahli persendirian dalam C++: mengisytiharkan fungsi rakan dalam kelas. Isytiharkan kelas sebagai kelas rakan supaya semua fungsi ahli dalam kelas boleh mengakses ahli peribadi kelas lain.
C++ Cara mengakses ahli persendirian dengan fungsi rakan
Fungsi rakan ialah fungsi yang ditakrifkan di luar kelas tetapi boleh mengakses ahli persendirian kelas. Terdapat dua cara untuk mencapai akses kepada ahli persendirian melalui fungsi rakan:
1 Isytihar fungsi rakan
Isytihar fungsi rakan dalam kelas, sintaksnya adalah seperti berikut:
class ClassName { public: // 类成员... // 声明友元函数 friend void friend_function(); };
Dengan cara ini, rakan yang diisytiharkan fungsi boleh Mengakses ahli peribadi kelas ini.
2. Istiharkan kelas rakan
Isytiharkan kelas sebagai kelas rakan, dan semua fungsi ahli dalam kelas boleh mengakses ahli persendirian kelas lain. Sintaksnya adalah seperti berikut:
class ClassName1 { public: // 类成员... // 声明友元类 friend class ClassName2; };
Semua fungsi ahli yang diisytiharkan dalam ClassName2
boleh mengakses ahli peribadi ClassName1
. ClassName2
中的成员函数都可以访问 ClassName1
的私有成员。
实战案例
考虑以下 C++ 代码:
class Person { private: int age; string name; public: // 友元函数 friend void print_person_info(const Person& person); // 访问私有成员的友元函数 void print_info() const { cout << "Name: " << name << endl; cout << "Age: " << age << endl; } }; // 友元函数外部分类的定义 void print_person_info(const Person& person) { cout << "Name: " << person.name << endl; cout << "Age: " << person.age << endl; } int main() { Person person; person.name = "John"; person.age = 30; person.print_info(); print_person_info(person); return 0; }
在这个例子中,print_person_info
函数是一个友元函数,它可以访问 Person
类的私有成员。在 Person
类中,print_info
Kes praktikal
🎜🎜Pertimbangkan kod C++ berikut: 🎜Name: John Age: 30 Name: John Age: 30🎜Dalam contoh ini, fungsi
Orang
, fungsi print_info
juga mengakses ahli persendirian menggunakan pengisytiharan fungsi rakan. 🎜🎜Menjalankan kod di atas akan mengeluarkan: 🎜rrreeeAtas ialah kandungan terperinci Bagaimanakah fungsi rakan C++ mengakses ahli persendirian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!