Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah Saya Boleh Mencapai Warisan Kelas Asas dalam Kelas C Enum?

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

Susan Sarandon
Susan Sarandonasal
2024-10-30 20:20:02941semak imbas

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>

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>

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!

Kenyataan:
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