Rumah >pembangunan bahagian belakang >C++ >Bolehkah Kelas dengan Inisialisasi Ahli Bukan Statik Dimulakan secara Agregat dalam C?
Permulaan Agregat untuk Kelas dengan Pemula Ahli Bukan Statik
Dalam C , pemulaan agregat ialah sintaks yang mudah untuk memulakan ahli kelas atau struct tanpa memanggil pembina secara eksplisit. Walau bagaimanapun, penggunaan pemula ahli dalam kelas menimbulkan persoalan sama ada kelas/struktur kekal sebagai agregat.
C 11 dan Status Agregat
Menurut C 11 standard, mempunyai pemula ahli dalam kelas menghalang kelas/struktur daripada dianggap sebagai agregat. Ini disebabkan oleh fakta bahawa pemula ahli menyerupai pembina yang ditentukan pengguna, yang tidak dibenarkan dalam agregat.
struct A { int a = 3; int b = 3; }; A a{0, 1}; // Invalid for C++11
C 14 dan Permulaan Agregat
Walau bagaimanapun, dalam C 14, sekatan ini telah ditarik balik. Inisialisasi agregat kini dibenarkan untuk kelas/struktur dengan pemula ahli bukan statik. Perubahan ini dibuat untuk menangani maklum balas pembangun dan memudahkan pemahaman tentang permulaan agregat.
struct A { int a = 3; int b = 3; }; A a{0, 1}; // Valid for C++14
Sokongan G untuk Agregat C 14
Perhatikan bahawa G versi 5.0 dan lebih baru menyokong pemulaan agregat C 14 untuk kelas/struktur dengan pemula ahli bukan statik. Walau bagaimanapun, versi lama G mungkin tidak mengenali sintaks ini.
Atas ialah kandungan terperinci Bolehkah Kelas dengan Inisialisasi Ahli Bukan Statik Dimulakan secara Agregat dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!