Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mentakrifkan Maya `

Bagaimana untuk Mentakrifkan Maya `

DDD
DDDasal
2024-10-26 19:12:03825semak imbas

How to Define a Virtual `

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&amp; 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&amp; operator<< (ostream&amp; out, const MyClass&amp; 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn