Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Memulakan Ahli Dilindungi Kelas Ibu Bapa dalam Pembina Kelas Kanak-kanak?

Bagaimana untuk Memulakan Ahli Dilindungi Kelas Ibu Bapa dalam Pembina Kelas Kanak-kanak?

Barbara Streisand
Lepaskan: 2024-10-25 04:45:02
asal
438 orang telah melayarinya

How to Initialize Protected Members of a Parent Class in a Child Class's Constructor?

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

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