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

Barbara Streisand
Lepaskan: 2024-10-25 04:45:02
asal
275 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!

sumber: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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!