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!