Rumah > pembangunan bahagian belakang > C++ > Bolehkah C Constructors Memulakan Tatasusunan Terus dalam Senarai Pemula Ahli?

Bolehkah C Constructors Memulakan Tatasusunan Terus dalam Senarai Pemula Ahli?

Susan Sarandon
Lepaskan: 2024-11-14 12:59:02
asal
506 orang telah melayarinya

Can C   Constructors Initialize Arrays Directly in Member Initializer Lists?

Memulakan Ahli Tatasusunan dalam Senarai Pemula Pembina

Ketidakupayaan untuk memulakan tatasusunan dalam pembina menggunakan senarai pemula ahli menimbulkan persoalan mengenai peraturan asas dan kemungkinan penyelesaian.

Permulaan Piawai dan Agregat C 03

Piawaian C 03 melarang penggunaan pemulaan langsung untuk jenis agregat, termasuk tatasusunan, dalam senarai pemula ahli. Permulaan langsung merujuk kepada penggunaan pembina secara langsung dengan kurungan, seperti yang dilihat dalam coretan kod yang disediakan.

Boost::array as a Solution

Pendekatan alternatif ialah menggunakan struct yang merangkum tatasusunan. Dengan mentakrifkan pembina dalam struct, anda boleh memulakan tatasusunan apabila objek dicipta. Ini adalah serupa dengan pendekatan yang diambil oleh perpustakaan Boost::array.

C 11 List Initialization

C 11 memperkenalkan senarai inisialisasi, yang membenarkan pengamulaan langsung agregat , termasuk tatasusunan, dalam senarai pemula ahli. Walau bagaimanapun, sintaks yang dinyatakan dalam soalan adalah tidak betul. Untuk menggunakan permulaan senarai, anda mesti menyertakan elemen tatasusunan dalam pendakap:

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

Sintaks ini dengan betul memulakan tatasusunan arr dalam pembina.

Atas ialah kandungan terperinci Bolehkah C Constructors Memulakan Tatasusunan Terus 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