Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah yang dilakukan oleh Sintaks `= delete` dalam Definisi Kelas C?

Apakah yang dilakukan oleh Sintaks `= delete` dalam Definisi Kelas C?

Linda Hamilton
Linda Hamiltonasal
2024-11-11 13:19:03265semak imbas

What Does the `= delete` Syntax Do in C   Class Definitions?

Enigmatic = delete: Mentakrifkan Kefungsian Kelas

Dalam C , sintaks = delete berikutan pengisytiharan fungsi mempunyai tujuan yang penting. Ia menandakan pemadaman eksplisit fungsi. Ciri ini, yang diperkenalkan dalam C 11, menyediakan kawalan yang tidak pernah berlaku sebelum ini ke atas tingkah laku kelas.

What = delete Accomplishes

Apabila fungsi dipadamkan, ia secara berkesan menjadi dilarang untuk memanggil, iaitu, ia tidak boleh digunakan pada objek kelas. Pendekatan ini amat berguna apabila seseorang ingin tidak membenarkan operasi penyalinan atau tugasan atau menghalang penukaran tertentu.

Sebagai contoh, dalam coretan kod berikut:

class my_class
{
    ...
    my_class(my_class const &) = delete;
    ...
};

Pembina my_class(my_class const & ) sengaja ditanda sebagai dipadam, menghalang penciptaan salinan pembina.

Memperluaskan Fungsi Melangkaui Penyalinan dan Pemadaman

Selain daripada keupayaannya untuk memadam fungsi, C juga menawarkan pengubah suai tambahan yang boleh dilampirkan pada pengisytiharan fungsi. Ini termasuk:

  • = 0: Sintaks ini mengisytiharkan fungsi maya tulen, yang mesti dilaksanakan dalam kelas terbitan.
  • = lalai: Ini menentukan bahawa fungsi harus menggunakan pelaksanaan lalai disediakan oleh pengkompil.

Kelas Penyesuaian Gelagat

Seperti yang ditunjukkan, sintaks = padam dan pengubah suai lain memperkasakan pengaturcara untuk menyesuaikan fungsi kelas dengan tepat. Dengan memadamkan fungsi atau menguatkuasakan ketetapan lain, pereka bentuk kelas boleh membimbing interaksi dengan objek mereka dengan berkesan, memastikan ia berkelakuan seperti yang dimaksudkan.

Atas ialah kandungan terperinci Apakah yang dilakukan oleh Sintaks `= delete` dalam Definisi Kelas C?. 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