Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Memulakan Ahli Dilindungi Kelas Ibu Bapa dalam Pembina Kelas Kanak-kanak?
Memulakan Ahli Dilindungi dengan Senarai Permulaan
Dalam pengaturcaraan berorientasikan objek, kelas induk boleh mempunyai ahli yang dilindungi yang boleh diakses oleh kelas kanak-kanak. Apabila memulakan objek kanak-kanak, mungkin wajar untuk juga memulakan ahli yang dilindungi yang diisytiharkan dalam kelas induk. Walau bagaimanapun, ini tidak semudah yang kelihatan.
Pertimbangkan contoh berikut:
<code class="cpp">class Parent { protected: std::string something; }; class Child : public Parent { private: Child() : something("Hello, World!") {} };</code>
Dalam contoh ini, kami cuba untuk memulakan sesuatu ahli yang dilindungi daripada kelas induk menggunakan permulaan senarai pembina kelas kanak-kanak. Walau bagaimanapun, pengkompil akan melaporkan ralat: kelas 'Child' tidak mempunyai sebarang medan bernama 'sesuatu'. Ralat ini berlaku kerana sesuatu ahli yang dilindungi tidak diisytiharkan dalam kelas kanak-kanak dan oleh itu tidak kelihatan dalam senarai permulaan.
Penyelesaian
Untuk memulakan ahli yang dilindungi bagi sesuatu kelas induk dalam pembina kelas kanak-kanak, kita perlu menambah pembina (sebaik-baiknya dilindungi) pada kelas induk yang mengambil parameter yang diperlukan untuk memulakan ahli ini. Kelas kanak-kanak kemudiannya boleh menggunakan pembina ini untuk menghantar nilai yang sesuai.
Berikut ialah pelaksanaan yang disemak semula:
<code class="cpp">class Parent { protected: Parent(const std::string& something) : something(something) {} std::string something; }; class Child : public Parent { private: Child() : Parent("Hello, World!") {} };</code>
Dalam contoh ini, kami telah menambah pembina yang dilindungi pada kelas Induk yang mengambil parameter rentetan dan menggunakannya untuk memulakan sesuatu ahli yang dilindungi. Kelas Kanak-kanak kemudian menggunakan pembina ini untuk memulakan ahli dilindungi induknya semasa pembinaannya sendiri.
Atas ialah kandungan terperinci Bagaimana untuk Memulakan Ahli Dilindungi Kelas Ibu Bapa dalam Pembina Kelas Kanak-kanak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!