Ya, fungsi rakan boleh dibebankan Seperti fungsi lain, fungsi rakan yang terlebih beban mesti mempunyai senarai parameter yang berbeza, seperti kelas Vector3D dalam contoh, yang mempunyai operator fungsi rakan terlampau muatan +() dan operator -(), membenarkan penambahan dan penolakan. operator untuk digunakan pada objek Vector3D.
Hubungan antara fungsi rakan dan beban berlebihan dalam C++
Fungsi rakan
Fungsi rakan ialah jenis fungsi khas yang boleh mengakses ahli persendirian kelas lain. Dalam erti kata lain, ia bukan fungsi ahli kelas, tetapi mempunyai hak akses yang sama seperti fungsi ahli.
Tentukan fungsi rakan:
class ClassName { // ... friend function_name(); };
Pemuatan berlebihan
Pemuatan berlebihan ialah keupayaan untuk mencipta berbilang fungsi dengan nama yang sama tetapi senarai parameter yang berbeza dalam skop yang sama. Ini bermakna apabila fungsi terlebih beban dipanggil, pengkompil akan menentukan fungsi yang hendak dipanggil berdasarkan argumen.
Interaksi antara fungsi rakan dan lebih muatan
Fungsi rakan boleh menjadi lebih muatan. Seperti fungsi lain, fungsi rakan yang terlebih beban mesti mempunyai senarai parameter yang berbeza.
Kes praktikal
Contoh kelas:
class Vector3D { double x, y, z; public: Vector3D(double x, double y, double z) : x(x), y(y), z(z) {} friend Vector3D operator+(const Vector3D& lhs, const Vector3D& rhs); friend Vector3D operator-(const Vector3D& lhs, const Vector3D& rhs); };
Fungsi rakan terlampau beban:
Vector3D operator+(const Vector3D& lhs, const Vector3D& rhs) { return Vector3D(lhs.x + rhs.x, lhs.y + rhs.y, lhs.z + rhs.z); } Vector3D operator-(const Vector3D& lhs, const Vector3D& rhs) { return Vector3D(lhs.x - rhs.x, lhs.y - rhs.y, lhs.z - rhs.z); }
Penggunaan: ini dan kita tambahkan pengendali tarikan.
Atas ialah kandungan terperinci Hubungan antara fungsi rakan C++ dan beban berlebihan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!