Dalam C , pengendali terlebih beban boleh dilaksanakan sama ada sebagai fungsi rakan atau fungsi ahli. Apabila ia berkaitan dengan pengendali sisipan strim "<<," pertimbangan tertentu membimbing pilihan antara pendekatan ini.
friend ostream & operator<<(ostream & os, const Paragraph& p) { return os << p.to_str(); }
Pendekatan ini biasanya digunakan untuk strim operator kerana:
ostream & operator<<(Paragraph const& rhs);
Walaupun ia menarik untuk berfikir bahawa fungsi ahli harus digunakan untuk semua kaedah kelas, pendekatan ini tidak disyorkan untuk "<<" operator atas beberapa sebab:
Pertimbangkan kelas berikut:
class Paragraph { std::string m_para; public: Paragraph(std::string const& init) : m_para(init) {} std::string const& to_str() const { return m_para; } };
Dalam kes ini, menggunakan fungsi rakan untuk " <<" operator ialah pilihan pilihan kerana:
Atas ialah kandungan terperinci Fungsi Rakan lwn. Fungsi Ahli untuk Lebihan Muatan Operator: Bilakah Fungsi Rakan Diutamakan untuk `. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!