Permulaan Agregat C 11 untuk Kelas dengan Pemula Bukan Statik Ahli
Dalam C 11, struktur dan kelas dengan pembina dan peribadi yang ditentukan pengguna atau ahli data bukan statik yang dilindungi tidak dianggap sebagai agregat. Dari segi sejarah, ini juga berlaku untuk kelas dengan pemula ahli bukan statik, walaupun mereka tidak mempunyai pembina yang ditentukan pengguna.
Walau bagaimanapun, dalam C 14, sekatan ini telah dialih keluar. Kini, kelas dengan pemula ahli bukan statik masih boleh menjadi agregat, selagi ia memenuhi keperluan lain untuk agregat:
Contohnya:
struct A { int a = 3; int b = 3; }; int main() { A a{0, 1}; // This is now allowed in C++14 return 0; }
Perubahan ini didorong oleh keinginan untuk menyelaraskan tingkah laku permulaan agregat dengan gerak hati. Pemula dalam kelas pada asasnya adalah bersamaan dengan pembina yang ditentukan pengguna, tetapi adalah berlawanan dengan intuitif bagi mereka untuk menghalang kelas daripada menjadi agregat.
Sejak G 5.0, C 14 agregat dengan pemula ahli data bukan statik telah disokong menggunakan std=c 1y atau -std=c 14.
Atas ialah kandungan terperinci Bolehkah Kelas dengan Inisialisasi Ahli Bukan Statik Menjadi Agregat dalam C 14?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!