Rumah >pembangunan bahagian belakang >C++ >Penjelasan terperinci tentang fungsi rakan C++: Aplikasi fungsi rakan dalam reka bentuk berorientasikan objek?
Fungsi rakan C++ ialah fungsi khas yang menyediakan akses kepada ahli peribadi dan dilindungi kelas lain. Fungsi bukan ahli boleh berinteraksi dengan kelas tertentu dengan mengisytiharkan fungsi rakan. Aplikasi fungsi rakan termasuk pembebanan operator, operasi I/O dan pelaksanaan asas. Sebagai contoh, fungsi rakan boleh digunakan untuk membebankan operator + untuk menyokong operasi antara jenis data tersuai, seperti yang ditunjukkan dalam kes berikut: kelas Vektor { public: friend Vector operator+(const Vector& v1, const Vector& v2);
C++ Penjelasan terperinci tentang fungsi rakan: Aplikasi dalam reka bentuk berorientasikan objekApakah fungsi rakan?
Dalam C++, fungsi rakan ialah fungsi khas yang diberikan akses kepada ahli peribadi dan dilindungi kelas lain. Ini membolehkan fungsi bukan ahli berinteraksi dengan kelas tertentu tanpa perlu diisytiharkan sebagai fungsi ahli kelas.
Bagaimana untuk mengisytiharkan fungsi rakan?Terdapat dua cara untuk mengisytiharkan fungsi rakan:
class MyClass { friend void myFriendFunction(); };
friend
关键字声明:class MyClass; // 前向声明 void myFriendFunction() { MyClass obj; // 访问 MyClass 的私有成员 }
友元函数的应用
友元函数在面向对象设计中有多种应用,包括:
+
和 *
,以支持自定义数据类型之间的运算。036118feef1720dceedad2101673ba7c>
,以简化对象序列化。实战案例:操作符重载
以下代码示例展示了如何使用友元函数来重载 +
运算符,以支持两个 Vector
对象的加法:
class Vector { int x, y; public: Vector(int _x, int _y) : x(_x), y(_y) {} friend Vector operator+(const Vector& v1, const Vector& v2); }; Vector operator+(const Vector& v1, const Vector& v2) { return Vector(v1.x + v2.x, v1.y + v2.y); } int main() { Vector v1(1, 2), v2(3, 4); Vector v3 = v1 + v2; // 使用重载的 + 运算符 return 0; }
在上面的示例中,operator+
函数是一个友元函数,它允许非成员函数访问 Vector
类的私有数据成员 x
和 y
+
dan *
untuk menyokong operasi antara jenis data tersuai. 🎜🎜🎜Operasi I/O: 🎜Fungsi rakan boleh menyediakan fungsi I/O kepada kelas, seperti 96f5733d02af5e838712bbab6c9bdd88>
untuk memudahkan Pensirian objek. 🎜🎜🎜Pelaksanaan asas: 🎜Fungsi rakan boleh mengakses ahli peribadi kelas untuk melaksanakan algoritma kompleks atau struktur data dalaman. 🎜🎜🎜🎜Kes Praktikal: Operator Lebih Muatan🎜🎜🎜Contoh kod berikut menunjukkan cara menggunakan fungsi rakan untuk melebihkan operator +
untuk menyokong dua objek Vector
Tambahan: 🎜rrreee 🎜Dalam contoh di atas, fungsi operator+
ialah fungsi rakan yang membenarkan fungsi bukan ahli untuk mengakses ahli data peribadi xVector
> dan y
. 🎜Atas ialah kandungan terperinci Penjelasan terperinci tentang fungsi rakan C++: Aplikasi fungsi rakan dalam reka bentuk berorientasikan objek?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!