Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah anda boleh memulakan pelbagai objek dalam pembina C?
Permulaan Pembina Tatasusunan C
Memulakan tatasusunan objek dalam C boleh menjadi mencabar, terutamanya jika dibandingkan dengan contoh bukan tatasusunan. Pertimbangkan pemula bukan tatasusunan berikut:
struct Foo { Foo(int x) { /* ... */ } }; struct Bar { Foo foo; Bar() : foo(4) {} };
Dalam contoh ini, objek Foo dalam struct Bar dimulakan dengan betul menggunakan senarai pemula dalam pembina. Walau bagaimanapun, memulakan tatasusunan objek memerlukan pendekatan yang berbeza.
struct Foo { Foo(int x) { /* ... */ } }; struct Baz { Foo foo[3]; Baz() : foo[0](4), foo[1](5), foo[2](6) {} };
Sintaks yang salah yang ditunjukkan dalam contoh di atas menyerlahkan cabaran untuk memulakan elemen tatasusunan secara individu.
Penyelesaian
Malangnya, menurut jawapan yang disediakan, tiada cara standard untuk memulakan tatasusunan objek dalam C dalam pembina. Sebaliknya, pembina lalai mesti digunakan untuk ahli tatasusunan dan sebarang permulaan yang diperlukan boleh dilakukan selepas masa pembinaan.
Penghadan ini dikaitkan dengan kekangan pemproses terbenam yang digunakan, yang tidak mempunyai sokongan untuk C moden piawaian. Sebagai penyelesaian, pengarang mencadangkan mencipta pembina lalai dan kaedah init() eksplisit untuk melaksanakan pemulaan selepas pembinaan. Walaupun pendekatan ini mungkin tidak sesuai, ia mengatasi kekurangan pemula pembina untuk tatasusunan.
Atas ialah kandungan terperinci Bagaimanakah anda boleh memulakan pelbagai objek dalam pembina C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!