Rumah > Artikel > pembangunan bahagian belakang > Bolehkah C Enumerasi Mewarisi daripada Enumerasi Lain?
Warisan Penghitungan dalam C
Pengenkapsulan ialah prinsip pengaturcaraan asas yang menggalakkan kebolehgunaan semula dan kebolehselenggaraan kod. Dalam C , pewarisan membenarkan kelas untuk mewarisi sifat dan fungsi daripada kelas asasnya. Bolehkah kita memanjangkan konsep ini kepada penghitungan?
Persoalan yang dikemukakan ialah: adakah terdapat cara untuk mewarisi enum daripada enum lain dalam C ? Khususnya:
<code class="cpp">enum eBase { one=1, two, three }; enum eDerived: public eBase { four=4, five, six };</code>
Mengatasi Had
Walaupun sintaks yang ditunjukkan di atas tidak disokong secara langsung, terdapat corak untuk mencapai kefungsian yang serupa:
<code class="cpp">class Enum { public: enum { One = 1, Two, Last }; }; class EnumDeriv : public Enum { public: enum { Three = Enum::Last, Four, Five }; };</code>
Di sini, kami mentakrifkan Enum sebagai kelas yang mengandungi jenis terhitung. EnumDeriv mewarisi secara terbuka daripada Enum. Perhatikan bahawa kedua-dua penghitungan menggunakan kata kunci enum dalam kelas masing-masing.
Mengakses Nilai Diwarisi
Untuk mengakses nilai yang diwarisi, kami awalan nama penghitungan dengan nama kelas, cth., EnumDeriv::One. Pemalar Terakhir juga boleh diakses daripada EnumDeriv, membenarkan kesinambungan yang lancar.
Demonstrasi
<code class="cpp">int main() { std::cout << EnumDeriv::One << std::endl; std::cout << EnumDeriv::Four << std::endl; return 0; }</code>
Output:
1 4
Atas ialah kandungan terperinci Bolehkah C Enumerasi Mewarisi daripada Enumerasi Lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!