Rumah > Artikel > pembangunan bahagian belakang > Permulaan Pembina dengan Nama Sama: Pematuhan Standard C?
Soalan:
Adakah ia dalam C standard untuk memulakan pembolehubah ahli menggunakan hujah pembina yang berkongsi nama yang sama dengan ahli berubah?
Contoh:
class Blah { std::vector<int> vec; public: Blah(std::vector<int> vec): vec(vec) {} };
Jawapan:
Ya, ia sah dan dijamin berfungsi mengikut yang C standard.
Penjelasan:
Seksyen 12.6.2/7 piawai C menyatakan, "Nama dalam senarai ungkapan bagi pemula mem dinilai dalam skop pembina yang mana pem-pemula ditentukan." Dalam erti kata lain, hujah pembina dan pembolehubah ahli adalah entiti yang berbeza, tetapi ia menggunakan nama yang sama.
Ini membolehkan kita memulakan pembolehubah ahli dengan nilai hujah pembina, seperti yang ditunjukkan dalam contoh.
Nota:
Adalah disyorkan untuk menggunakan rujukan const untuk hujah pembina untuk mengelakkan penyalinan objek yang tidak perlu. Jadi, adalah lebih baik untuk menggunakan:
Blah(const std::vector<int> &vec): vec(vec) {}
Atas ialah kandungan terperinci Permulaan Pembina dengan Nama Sama: Pematuhan Standard C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!