Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Memulakan Tatasusunan Objek dengan Pembina dalam C?

Bagaimana untuk Memulakan Tatasusunan Objek dengan Pembina dalam C?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-09 05:23:02802semak imbas

How to Initialize Arrays of Objects with Constructors in C  ?

C : Pemula Pembina untuk Tatasusunan

Dalam C , memulakan tatasusunan objek boleh menjadi satu cabaran. Untuk senario bukan tatasusunan, seseorang boleh menggunakan sintaks pembina seperti:

struct Foo {
    Foo(int x) { /* ... */ }
};

struct Bar {
    Foo foo;

    Bar() : foo(4) {}
};

Walau bagaimanapun, isu timbul apabila berurusan dengan tatasusunan:

struct Foo {
    Foo(int x) { /* ... */ }
};

struct Baz {
    Foo foo[3];

    // Incorrect syntax
    Baz() : foo[0](4), foo[1](5), foo[2](6) {}
};

Malangnya, dalam C (sebelum lebih lelaran bahasa baru-baru ini), tidak ada kaedah mudah untuk memulakan ahli tatasusunan menggunakan pembina. Had ini berpunca daripada keperluan pembina lalai untuk ahli tatasusunan, yang digunakan secara automatik semasa pemulaan tatasusunan. Selepas itu, sebarang permulaan tambahan dalam pembina diteruskan. Untuk sistem terbenam yang tidak mempunyai fungsi STL, satu penyelesaian melibatkan pembina lalai bersama kaedah init() eksplisit yang boleh dipanggil selepas pembinaan, mengelakkan keperluan untuk pemula.

Atas ialah kandungan terperinci Bagaimana untuk Memulakan Tatasusunan Objek dengan Pembina dalam C?. 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