Bagaimana untuk Memulakan Tatasusunan Objek dengan Pembina dalam C?

Mary-Kate Olsen
Lepaskan: 2024-11-09 05:23:02
asal
777 orang telah melayarinya

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) {}
};
Salin selepas log masuk

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) {}
};
Salin selepas log masuk

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!

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