Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Memulakan Ahli Tatasusunan dalam Senarai Pemula Ahli?

Bagaimana untuk Memulakan Ahli Tatasusunan dalam Senarai Pemula Ahli?

Barbara Streisand
Lepaskan: 2024-11-29 02:07:08
asal
521 orang telah melayarinya

How to Initialize an Array Member in a Member Initializer List?

Cara Memulakan Ahli Tatasusunan dalam Senarai Pemula Ahli

Pengenalan

Memulakan ahli tatasusunan dalam senarai pemula ahli boleh kelihatan seperti tugas yang mudah, tetapi boleh menjadi sukar dalam amalan. Artikel ini akan meneroka pendekatan yang berbeza dan menjawab soalan lazim yang berkaitan dengan topik ini.

Masalah dan Kod

Coretan kod berikut cuba untuk memulakan ahli tatasusunan dalam pemula pembina senarai:

class C {
public:
    C() : arr({1,2,3}) //doesn't compile
{}
private:
    int arr[3];
};
Salin selepas log masuk

Walau bagaimanapun, kod tersebut gagal untuk disusun. Sebabnya ialah tatasusunan hanya boleh dimulakan menggunakan operator tugasan =, seperti:

int arr[3] = {1,3,4};
Salin selepas log masuk

Penyelesaian

  • Gunakan Struct:

Satu penyelesaian ialah menggunakan struct untuk merangkum tatasusunan, membenarkan ia akan dimulakan dalam pembina. Inilah asasnya yang dilakukan oleh perpustakaan Boost.Array.

  • Gunakan Permulaan Senarai:

C 11 memperkenalkan pemulaan senarai, yang boleh digunakan untuk memulakan tatasusunan dalam senarai pemula ahli. Kod berikut akan berfungsi:

class C {
public:
    C() : arr{1, 2, 3} { }
private:
    int arr[3];
};
Salin selepas log masuk

C 03

Piawaian C 03 tidak secara khusus menangani pemulaan agregat (termasuk tatasusunan) dalam pemula pembina. Ketaksahan kod asal adalah akibat daripada peraturan untuk pemulaan langsung, yang melarang penggunaan senarai pemula untuk tatasusunan.

C 11

Pemulaan senarai C 11 sintaks memudahkan pemulaan tatasusunan dalam senarai pemula ahli. Walau bagaimanapun, adalah penting untuk menggunakan sintaks yang betul, seperti yang ditunjukkan di atas.

Atas ialah kandungan terperinci Bagaimana untuk Memulakan Ahli Tatasusunan dalam Senarai Pemula Ahli?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan