Rumah >pembangunan bahagian belakang >C++ >Apakah Fungsi Ahli yang Dihasilkan oleh Pengkompil C untuk Kelas?

Apakah Fungsi Ahli yang Dihasilkan oleh Pengkompil C untuk Kelas?

Barbara Streisand
Barbara Streisandasal
2024-12-23 11:24:09579semak imbas

What Member Functions Does the C   Compiler Generate for a Class?

Fungsi Ahli Khusus Dijana oleh Pengkompil untuk Kelas

Untuk kelas tertentu, pengkompil boleh menjana fungsi ahli tertentu berdasarkan kelas definisi dan ketersediaan pelaksanaan yang ditentukan pengguna. Fungsi ahli ini termasuk:

C 98/03

  • Pembina Lalai: Pengkompil menjana pembina lalai jika kelas tidak tentukan mana-mana pembina.
  • Salin Pembina: Pembina salinan dijana jika kelas tidak mengisytiharkan pembina salinannya sendiri.
  • Operator Tugasan Salin: Begitu juga, pengendali tugasan salinan dijana jika kelas kekurangan pelaksanaan yang ditentukan pengguna.
  • Pemusnah: Pengkompil menjana pemusnah jika kelas tidak menentukan kelasnya sendiri.

Adalah penting untuk ambil perhatian bahawa fungsi ahli ini hanya dijana apabila diperlukan. Jika ia kekal tidak digunakan, pengkompil tidak akan menciptanya.

C 11

C 11 memperkenalkan peraturan tambahan untuk fungsi ahli yang dijana pengkompil:

  • Move Constructor: Jika kelas kekurangan copy constructor, salin tugasan operator, operator penugasan alih dan pemusnah, pembangun bergerak boleh dijana, dengan mengandaikan kelas dan ahlinya boleh alih dan pembina alih tidak ditandakan sebagai dipadamkan.
  • Operator Tugasan Alih: Begitu juga, pengendali tugasan pindah mungkin dijana di bawah yang sama syarat.

Kepentingan Pembina Lalai

Pembina lalai mempunyai beberapa tujuan:

  • Ia membenarkan kejadian kelas untuk dibuat tanpa menyatakan hujah.
  • Ia memulakan ahli data kelas kepada lalai nilai.
  • Ia membolehkan penggunaan bekas dan algoritma yang memerlukan pembinaan lalai.
  • Ia memudahkan penciptaan objek secara dinamik (cth., menggunakan "baharu").

Atas ialah kandungan terperinci Apakah Fungsi Ahli yang Dihasilkan oleh Pengkompil C untuk Kelas?. 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