Rumah > pembangunan bahagian belakang > C++ > Bolehkah C Enumerasi Mewarisi daripada Enumerasi Lain?

Bolehkah C Enumerasi Mewarisi daripada Enumerasi Lain?

Mary-Kate Olsen
Lepaskan: 2024-10-31 01:45:29
asal
1072 orang telah melayarinya

Can C   Enumerations Inherit from Other Enumerations?

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

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

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

Output:

1
4
Salin selepas log masuk

Atas ialah kandungan terperinci Bolehkah C Enumerasi Mewarisi daripada Enumerasi Lain?. 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