Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mentakrifkan Maya `
Mengatasi Maya << Ralat Operator
Apabila cuba menentukan << operator sebagai fungsi percuma, pembangun mungkin menghadapi ralat pengkompil "operator <<: hanya fungsi dan pangkalan ahli boleh menjadi maya." Ralat ini timbul kerana fungsi percuma tidak boleh menjadi maya.
Untuk menyelesaikan isu ini, pertimbangkan untuk menambah lapisan perantara dengan memperkenalkan fungsi ahli maya baharu dalam kelas:
<code class="cpp">class MyClass { public: virtual void print(ostream& where) const; };</code>
Fungsi maya ini menyediakan satu cara untuk menyesuaikan tingkah laku output dalam subkelas.
Seterusnya, tentukan operator<< sebagai fungsi percuma dengan susunan parameter yang betul:
<code class="cpp">ostream& operator<< (ostream& out, const MyClass& mc) { mc.print(out); return out; }</code>
Pendekatan ini memastikan pengendali<< mempunyai susunan parameter yang diingini sambil membenarkan tingkah laku maya ditakrifkan dalam subkelas.
Atas ialah kandungan terperinci Bagaimana untuk Mentakrifkan Maya `. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!