Bagaimanakah Saya Boleh Mencapai Warisan Kelas Asas dalam Kelas C Enum?

Susan Sarandon
Lepaskan: 2024-10-30 20:20:02
asal
951 orang telah melayarinya

How Can I Achieve Base Class Inheritance in C   Enum Classes?

Warisan Kelas Asas dalam Kelas Enum

Dalam C , enum ialah jenis penghitungan yang mewakili satu set nilai bernama yang dikaitkan dengan integer . Walaupun enum boleh menjadi mudah untuk mewakili pemalar, mungkin terdapat situasi di mana anda perlu mewarisi daripada enum sedia ada untuk mencipta yang baharu.

Coretan kod yang disediakan dalam soalan menunjukkan percubaan untuk mewarisi daripada satu enum ( eBase) kepada yang lain (eDerived), tetapi ini tidak disokong dalam C secara langsung. Enum bukan kelas, dan oleh itu ia tidak boleh diwarisi dalam pengertian tradisional.

Walau bagaimanapun, terdapat penyelesaian untuk mencapai kefungsian yang serupa. Dengan mentakrifkan kelas asas yang mewakili pemalar enum, kita boleh mewarisi daripada kelas ini untuk mencipta jenis enum baharu:

<code class="cpp">enum class Enum : int
{
public:
    EnumValue One = 1,
    EnumValue Two,
    EnumValue Last
};

enum class EnumDerived : int
{
public:
    EnumValue Three = Enum::Last,
    EnumValue Four,
    EnumValue Five
};</code>
Salin selepas log masuk

Dalam contoh ini, kelas Enum mewakili enum asas, dan kelas EnumDerived mewarisi daripadanya. Nilai EnumValue mewakili pemalar enum individu.

Untuk mengakses nilai dalam enum yang diwarisi, kami menggunakan nama yang layak sepenuhnya, seperti yang ditunjukkan dalam kod berikut:

<code class="cpp">int main()
{
    std::cout << EnumDerived::EnumValueOne << std::endl;
    std::cout << EnumDerived::EnumValueFour << std::endl;
}</code>
Salin selepas log masuk

Dengan menggunakan ini pendekatan, kita boleh mencapai warisan kelas asas dalam kelas enum dalam C , menyediakan cara untuk melanjutkan enum sedia ada dan mencipta yang baharu dengan nilai tambahan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencapai Warisan Kelas Asas dalam Kelas C Enum?. 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!