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]; };
Walau bagaimanapun, kod tersebut gagal untuk disusun. Sebabnya ialah tatasusunan hanya boleh dimulakan menggunakan operator tugasan =, seperti:
int arr[3] = {1,3,4};
Penyelesaian
Satu penyelesaian ialah menggunakan struct untuk merangkum tatasusunan, membenarkan ia akan dimulakan dalam pembina. Inilah asasnya yang dilakukan oleh perpustakaan Boost.Array.
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]; };
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!