Rumah >pembangunan bahagian belakang >C++ >Senarai Pemula Ahli lwn. Tugasan Pembina: Bilakah Anda Harus Menggunakan Yang Mana?

Senarai Pemula Ahli lwn. Tugasan Pembina: Bilakah Anda Harus Menggunakan Yang Mana?

Barbara Streisand
Barbara Streisandasal
2024-12-14 14:24:15385semak imbas

Member Initializer List vs. Constructor Assignment: When Should You Use Which?

Senarai Permulaan lwn. Tugasan Pembina: Perbezaan Dalaman dan Kod

Dalam kod C yang diberikan, terdapat soalan mengenai perbezaan antara menggunakan senarai pemula ahli dan menetapkan nilai dalam pembina.

Ahli Senarai Pemula

Senarai pemula ahli, yang disertakan dalam kurungan selepas nama pembina, digunakan untuk memulakan:

  • Ahli tetap
  • Rujukan (bukan penunjuk )
  • Ahli kelas asas (parameter kepada kelas asas pembina)

Tugasan Pembina

Sebaliknya, tugasan pembina digunakan untuk memulakan ahli bukan pemalar dan memberikan nilai kepada pembolehubah bukan rujukan.

Dalaman Perbezaan

Secara dalaman, kod yang dijana sedikit berbeza antara kedua-dua pendekatan. Apabila menggunakan senarai pemula ahli, pengkompil meletakkan nilai ahli terus ke dalam objek kelas semasa pembinaan. Ini mengelakkan operasi penugasan tambahan.

Perbezaan Kod

Membandingkan coretan kod yang diberikan:

MyClass::MyClass() : _capacity(15), _data(NULL), _len(0)
{
}
MyClass::MyClass()
{
  _capacity = 15;
  _data = NULL;
  _len = 0;
}

Kedua-dua coretan akan memulakan ketiga-tiga ahli persendirian _kapasiti, _data dan _len dengan nilai yang ditentukan. Walau bagaimanapun, coretan pertama menggunakan senarai pemula ahli, manakala coretan kedua menggunakan tugasan pembina.

Bila Menggunakan Senarai Pemula Ahli

Senarai permulaan mesti digunakan:

  • Untuk memulakan ahli tetap
  • Untuk mulakan rujukan
  • Untuk menghantar hujah kepada pembina kelas asas

Untuk pemulaan standard (ahli bukan tetap, bukan rujukan), mana-mana pendekatan boleh digunakan. Secara umum, senarai pemula ahli lebih disukai atas sebab kecekapan.

Atas ialah kandungan terperinci Senarai Pemula Ahli lwn. Tugasan Pembina: Bilakah Anda Harus Menggunakan Yang Mana?. 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