Rumah > Artikel > pembangunan bahagian belakang > Penjelasan terperinci tentang fungsi rakan C++: Bagaimana untuk menggunakan fungsi rakan untuk akses merentas kelas?
Fungsi rakan dalam C++ membenarkan fungsi bukan ahli untuk mengakses ahli peribadi dan dilindungi kelas, yang sangat berguna dalam melaksanakan operasi merentas kelas, ADT dan ujian unit: Mengisytiharkan fungsi rakan: Gunakan kata kunci rakan untuk mengisytiharkan fungsi di luar kelas. Gunakan fungsi rakan: Akses terus ahli peribadi kelas seolah-olah ia adalah fungsi ahli. Kes praktikal: Gunakan fungsi rakan untuk mendapatkan maklumat umur peribadi tanpa mendedahkan atribut umur.
Dalam pengaturcaraan C++, fungsi rakan ialah mekanisme berkuasa yang membenarkan fungsi di luar kelas mengakses ahli kelas peribadi dan dilindungi. Ini sangat berguna dalam situasi tertentu, contohnya:
class MyClass { public: // ... private: // ... friend void print_my_class(const MyClass&); // 声明友元函数 };
Kod di atas mengisytiharkan MyClass
. Ini bermakna fungsi print_my_class
boleh mengakses ahli peribadi dan dilindungi MyClass
. print_my_class
作为 MyClass
的友元函数。这意味着 print_my_class
函数可以访问 MyClass
的私有和受保护成员。
要使用友元函数,只需在友元函数中直接访问类的私有成员即可:
void print_my_class(const MyClass& obj) { std::cout << "Private member: " << obj.private_member << std::endl; std::cout << "Protected member: " << obj.protected_member << std::endl; }
假设我们有一个 Person
类,表示一个人,它具有一个私有的 age
成员。我们想要创建一个友元函数 get_age
来获取 Person
对象的年龄:
class Person { public: // ... private: int age; friend int get_age(const Person&); // 声明友元函数 }; int get_age(const Person& person) { return person.age; }
在 main
函数中,我们创建一个 Person
对象并使用友元函数 get_age
int main() { Person person(25); std::cout << "Age: " << get_age(person) << std::endl; return 0; }🎜Kes praktikal🎜🎜Andaikan kita mempunyai Kelas
umur
peribadi. Kami ingin mencipta fungsi rakan get_age
untuk mendapatkan umur objek Orang
: 🎜Age: 25🎜Dalam fungsi
utama
, kami mencipta Orang objek dan gunakan fungsi rakan get_age
untuk mengakses ahli peribadinya: 🎜rrreee🎜Output: 🎜rrreeeAtas ialah kandungan terperinci Penjelasan terperinci tentang fungsi rakan C++: Bagaimana untuk menggunakan fungsi rakan untuk akses merentas kelas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!