Bolehkah C Enumerasi Mewarisi daripada Enumerasi Lain?

Mary-Kate Olsen
Lepaskan: 2024-10-31 01:45:29
asal
947 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!

sumber:php.cn
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!