Bolehkah Anda Membebankan Operator untuk Kedua-dua Peningkatan Pra dan Selepas dalam C?

Patricia Arquette
Lepaskan: 2024-10-29 20:17:02
asal
347 orang telah melayarinya

 Can You Overload the    Operator for Both Pre and Post Increment in 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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!