Rumah >pembangunan bahagian belakang >C++ >Apakah Operasi yang Sah pada C Moved-From Objects?

Apakah Operasi yang Sah pada C Moved-From Objects?

Barbara Streisand
Barbara Streisandasal
2024-12-25 17:42:15174semak imbas

What Operations Are Valid on C   Moved-From Objects?

Objek Apa yang Boleh Dialihkan?

Standard C membenarkan objek jenis yang ditakrifkan dalam perpustakaan standard C untuk dialihkan. Ini bermakna objek baharu boleh dibuat dan dimulakan dengan data daripada objek sedia ada, yang kemudiannya dialihkan ke keadaan yang tidak ditentukan.

Operasi Sah pada Moved-From Objects

Standard mentakrifkan bahawa objek yang dialihkan daripada objek hendaklah diletakkan dalam keadaan yang sah tetapi tidak ditentukan. Ini bermakna bahawa sebarang operasi tanpa prasyarat boleh dilakukan pada objek yang dialihkan daripada. Operasi sedemikian biasanya termasuk:

  • Pemusnahan
  • Tugasan
  • Pemerhati Const (cth., dapatkan, kosong, saiz)

Operasi dengan Prasyarat

Operasi yang biasanya mempunyai prasyarat, seperti penyahrujukan dan pop_back, tidak boleh dilakukan terus pada objek yang dialihkan.

Contoh: Templat Fungsi Swap

Templat fungsi swap dalam perpustakaan standard menunjukkan keupayaan untuk menetapkan kepada pindah-dari objek. Dalam fungsi ini, objek yang dialihkan daripada mula-mula diberikan kepada pembolehubah sementara (baris 1). Objek asal kemudiannya diberikan nilai objek lain (baris 2) sebelum diberikan nilai pembolehubah sementara (baris 3).

Nota Sintaks Permulaan

Penggunaan T c = std::move(a) dalam baris 1 dan bukannya T c(std::move) tidak berkaitan dengan perbincangan tentang move operasi. Ia hanyalah soal gaya dan keutamaan.

Atas ialah kandungan terperinci Apakah Operasi yang Sah pada C Moved-From Objects?. 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