Rumah >pembangunan bahagian belakang >C++ >Bolehkah Anda Membebankan Operator untuk Kedua-dua Peningkatan Pra dan Selepas dalam C?
Operator Lebihan Muatan untuk Kenaikan Pra dan Selepas
Siasatan ini menyelidiki kemungkinan melebihkan operator untuk memudahkan kedua-dua pra-kenaikan dan pasca- operasi kenaikan. Dalam pra-kenaikan (SampleObject ), objek dinaikkan sebelum nilainya dikembalikan. Post-increment ( SampleObject) menambah objek dan mengembalikan nilai asalnya.
Melaksanakan operasi ini melalui lebihan beban operator memerlukan pemahaman tentang had jenis pulangan. Walaupun lebihan muatan berdasarkan jenis pemulangan mungkin kelihatan dibenarkan, ia menimbulkan masalah kekaburan. Lebihan beban operator memanjangkan fungsi jenis terbina dalam kepada jenis yang ditentukan pengguna. Namun, masih tidak jelas mengapa kenaikan pra dan pasca tidak boleh wujud bersama untuk jenis yang ditentukan pengguna.
Untuk menyelesaikan kekaburan ini, pengendali kenaikan postfix menggunakan parameter int tiruan:
<code class="cpp">// Prefix Sample& operator++() { // Increment logic on this instance; return reference to it. return *this; } // Postfix Sample operator++(int) { Sample tmp(*this); operator++(); // Prefix-increment this instance return tmp; // Return value before increment }</code>
Dengan ini pendekatan, pengendali pra-kenaikan mengembalikan rujukan kepada objek kenaikan, manakala pengendali pasca-kenaikan mengembalikan salinan objek sebelum operasi kenaikan.
Atas ialah kandungan terperinci Bolehkah Anda Membebankan Operator untuk Kedua-dua Peningkatan Pra dan Selepas dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!