Rumah >pembangunan bahagian belakang >C++ >Bolehkah C Enums Diisytiharkan ke Hadapan, dan Bagaimana?
Pengisytiharan Pengisytiharan Hadapan dalam C
Dalam C , penghitungan (enum) ialah ciri berkuasa yang digunakan untuk mewakili set pemalar bernama. Walau bagaimanapun, terdapat keadaan di mana pengaturcara menghadapi masalah apabila cuba memajukan mengisytiharkan enum.
Apakah itu Pengisytiharan Hadapan?
Pengisytiharan hadapan berfungsi untuk memaklumkan pengkompil tentang kewujudan jenis atau fungsi tanpa memberikan definisi khusus. Ini membenarkan pengkompil menyelesaikan kebergantungan jenis semasa penyusunan, walaupun definisi lengkap belum tersedia.
Mengapa Enums Tidak Boleh Dimajukan Sebelum Ini?
Sebelumnya kepada C 11, pengisytiharan hadapan enum tidak dibenarkan kerana pergantungan saiz penghitungan pada kandungannya. Saiz enum ditentukan oleh bilangan enumerator yang terkandung di dalamnya dan maklumat ini tidak tersedia semasa pengisytiharan ke hadapan.
Enum Pengisytiharan Ke Hadapan dalam C 11 dan Seterusnya
Dengan pengenalan C 11, enum pengisytiharan hadapan menjadi mungkin dengan menyatakan secara jelas saiz penghitungan. Ini membolehkan pengkompil memperuntukkan memori yang mencukupi tanpa mengetahui kandungan yang tepat. Sintaks berikut digunakan:
enum class EnumName; // C++11 syntax enum EnumName : underlying_type; // C++11 syntax, specify the underlying type
Faedah Forward Declaring Enums
Forward deklarasi enums menawarkan beberapa kelebihan:
Contoh Pengisytiharan Hadapan Enum
Pertimbangkan contoh berikut:
class MyClass { private: enum class E; // Forward declare an enumeration void Foo(E e); // Declare a function that takes an argument of type E }; // **Implementation file** enum class MyClass::E { A, B, C };
Dalam contoh ini , enum E diisytiharkan ke hadapan dalam kelas MyClass. Fungsi Foo juga diisytiharkan, yang mengambil hujah jenis E. Takrifan sebenar enum disediakan dalam fail pelaksanaan. Ini membolehkan kaedah Foo merujuk penghitungan E tanpa mendedahkan nilainya secara terbuka.
Kesimpulan
Pengisytiharan enum ke hadapan dalam C memberikan fleksibiliti dan menambah baik organisasi kod. Dengan menyatakan secara eksplisit saiz penghitungan, anda boleh membuat pengisytiharan ke hadapan yang menghalang ralat pengkompil dan melindungi butiran pelaksanaan daripada pendedahan yang tidak diingini.
Atas ialah kandungan terperinci Bolehkah C Enums Diisytiharkan ke Hadapan, dan Bagaimana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!