Rumah >pembangunan bahagian belakang >C++ >Senarai Pemula lwn. Badan Pembina: Sintaks Pembina C Mana Yang Perlu Anda Gunakan?

Senarai Pemula lwn. Badan Pembina: Sintaks Pembina C Mana Yang Perlu Anda Gunakan?

Linda Hamilton
Linda Hamiltonasal
2024-12-03 14:23:17836semak imbas

Initializer List vs. Constructor Body: Which C   Constructor Syntax Should You Use?

Sintaks Permulaan dalam Pembina: Senarai Pemula lwn. Badan Pembina

Dalam C , anda mempunyai dua pilihan untuk memulakan pembolehubah ahli kelas dalam pembina :

  • Pemula Senarai:

    public: Thing(int _foo, int _bar): member1(_foo), member2(_bar) {}
  • Badan Pembina:

    public: Thing(int _foo, int _bar) {
      member1 = _foo;
      member2 = _bar;
    }

Perbandingan

Walaupun kedua-dua sintaks kelihatan serupa, mereka boleh mempunyai perbezaan yang ketara untuk jenis ahli bukan POD (Data Lama Biasa).

Dalam sintaks senarai pemula, pembolehubah ahli dimulakan sebelum badan pembina dilaksanakan. Ini bermakna ahli bukan POD dengan pembina bukan lalai dijamin dimulakan dengan betul.

Dalam sintaks isi pembina, pembolehubah ahli dimulakan selepas badan pembina. Ini boleh membawa kepada ralat pemulaan dan kompilasi berganda jika ahli bukan POD tidak mempunyai pembina lalai.

Pengendalian Parameter Lalai

Parameter lalai tidak dikendalikan secara berbeza antara dua sintaks. Anda boleh menggunakan parameter lalai dalam kedua-dua senarai pemula dan badan pembina.

Kesimpulan

Untuk jenis ahli bukan POD, disyorkan untuk menggunakan sintaks senarai pemula kerana ia memastikan permulaan yang betul dan menghalang kemungkinan ralat.

Atas ialah kandungan terperinci Senarai Pemula lwn. Badan Pembina: Sintaks Pembina C Mana Yang Perlu Anda Gunakan?. 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