


Ralat C++: Pengisytiharan penghitungan jenis bukan integer tidak dibenarkan.
C++ ialah bahasa pengaturcaraan yang biasa digunakan yang sering digunakan dalam reka bentuk dan pembangunan program. Apabila menulis program dalam C++, anda sering menghadapi pelbagai ralat penyusunan dan amaran. Antaranya, apabila kita menggunakan jenis penghitungan, kita kadangkala menghadapi ralat "Pengisytiharan penghitungan jenis bukan integer tidak dibenarkan". Artikel ini akan menerangkan jenis penghitungan C++ dan cara mengubah suai ralat ini.
Jenis penghitungan C++
Pertama, mari kita perkenalkan secara ringkas jenis penghitungan (juga dipanggil pembolehubah penghitungan) dalam C++. Dalam C++, jenis penghitungan boleh mentakrifkan beberapa nilai sebagai senarai terhitung Nilai ini dipanggil pemalar penghitungan. Contoh diberikan di bawah:
enum Color {RED, BLUE, GREEN};
Di sini kami mentakrifkan jenis penghitungan Warna dan mentakrifkan nilainya sebagai MERAH, BIRU dan HIJAU. Setiap pemalar enum di sini sebenarnya adalah nilai integer. Secara lalai, nilai MERAH ialah 0, nilai BIRU ialah 1 dan nilai HIJAU ialah 2.
Dengan cara ini, kita boleh menggunakan nilai yang berbeza dengan mudah sebagai pemalar penghitungan, menjadikan program lebih jelas dan lebih mudah difahami. Contohnya, atribut seperti hari dalam minggu atau warna boleh ditakrifkan dengan cara ini.
Pengisytiharan penghitungan jenis bukan integer tidak dibenarkan
Namun, kadangkala apabila kita menentukan jenis penghitungan, kita akan menghadapi ralat "Pengisytiharan penghitungan jenis bukan integer tidak dibenarkan". Contohnya:
enum Fruit {APPLE, BANANA, ORANGE, MANGO} f;
Di sini kita mentakrifkan jenis penghitungan Buah, dan mentakrifkan nilainya sebagai EPAL, PISANG, OREN, MANGO, dsb., dan juga mentakrifkan pembolehubah penghitungan f.
Namun, apabila kita menyusun atur cara, kita akan menemui ralat kompilasi:
error: enumeration type 'Fruit' is not allowed as underlying type of enumeration
Sebab ralat ini ialah jenis penghitungan sebelum piawai C++11 memerlukan pemalar penghitungan mestilah jenis integer. Dalam contoh ini, walaupun kami tidak memberikan nilai secara eksplisit kepada setiap pemalar penghitungan (nilai lalai ialah jenis integer), jenis penghitungan Buah yang kami isytiharkan ialah jenis bukan integer, jadi pengkompil melaporkan ralat.
Penyelesaian
Jadi, bagaimana untuk mengubah suai ralat ini? Kita boleh menyelesaikan masalah ini dengan menggunakan "kelas penghitungan" baharu C++11. Kelas penghitungan adalah salah satu titik pengetahuan baharu dalam C++11 Berbanding dengan jenis penghitungan sebelumnya, terdapat beberapa perbezaan dalam definisi dan penggunaan.
Sebagai contoh, kita boleh mengubah suai jenis enumerasi Buah di atas seperti berikut:
enum class Fruit {APPLE, BANANA, ORANGE, MANGO};
Di sini kita menggunakan kata kunci kelas enum untuk mentakrifkan Buah sebagai kelas enumerasi. Tidak seperti jenis penghitungan sebelumnya, pemalar penghitungan dalam kelas penghitungan bukan lagi jenis int. Dengan cara ini, walaupun setiap pemalar penghitungan tidak diberikan nilai secara eksplisit, ralat kompilasi tidak akan berlaku.
Perhatikan bahawa pemalar penghitungan yang ditakrifkan menggunakan kelas penghitungan perlu diakses menggunakan penentu skop (::). Contohnya:
enum class Fruit {APPLE, BANANA, ORANGE, MANGO}; Fruit f = Fruit::BANANA;
Pada masa ini, nilai f haruslah nilai pemalar PISANG dalam kelas penghitungan Buah. Dengan cara ini, kami mengelakkan ralat "Pengisytiharan penghitungan jenis bukan integer tidak dibenarkan" semasa mentakrifkan jenis penghitungan.
Kesimpulan
Dalam C++, jenis penghitungan ialah jenis data yang biasa digunakan, yang boleh dengan mudah mentakrifkan beberapa nilai sebagai senarai yang boleh dikira. Walau bagaimanapun, apabila menggunakan jenis penghitungan, ralat penyusunan "Pengisytiharan penghitungan jenis bukan integer tidak dibenarkan" mungkin berlaku. Pada masa ini, kita boleh menyelesaikan masalah ini dengan menggunakan kelas penghitungan baharu dalam C++11 untuk mengelakkan ralat penyusunan semasa mentakrifkan jenis penghitungan.
Atas ialah kandungan terperinci Ralat C++: Pengisytiharan penghitungan jenis bukan integer tidak dibenarkan.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Sejarah dan evolusi C# dan C adalah unik, dan prospek masa depan juga berbeza. 1.C dicipta oleh BjarnestroustRup pada tahun 1983 untuk memperkenalkan pengaturcaraan berorientasikan objek ke dalam bahasa C. Proses evolusinya termasuk pelbagai standardisasi, seperti C 11 memperkenalkan kata kunci auto dan ekspresi Lambda, C 20 memperkenalkan konsep dan coroutin, dan akan memberi tumpuan kepada pengaturcaraan prestasi dan sistem pada masa akan datang. 2.C# telah dikeluarkan oleh Microsoft pada tahun 2000. Menggabungkan kelebihan C dan Java, evolusinya memberi tumpuan kepada kesederhanaan dan produktiviti. Sebagai contoh, C#2.0 memperkenalkan generik dan C#5.0 memperkenalkan pengaturcaraan tak segerak, yang akan memberi tumpuan kepada produktiviti pemaju dan pengkomputeran awan pada masa akan datang.

Golang lebih baik daripada C dalam kesesuaian, manakala C lebih baik daripada Golang dalam kelajuan mentah. 1) Golang mencapai kesesuaian yang cekap melalui goroutine dan saluran, yang sesuai untuk mengendalikan sejumlah besar tugas serentak. 2) C Melalui pengoptimuman pengkompil dan perpustakaan standard, ia menyediakan prestasi tinggi yang dekat dengan perkakasan, sesuai untuk aplikasi yang memerlukan pengoptimuman yang melampau.

Kod penulisan dalam Kod Visual Studio (VSCode) adalah mudah dan mudah digunakan. Hanya pasang VSCode, buat projek, pilih bahasa, buat fail, tulis kod, simpan dan jalankannya. Kelebihan vscode termasuk sumber lintas platform, bebas dan terbuka, ciri-ciri yang kuat, sambungan yang kaya, dan ringan dan cepat.

Golang sesuai untuk pembangunan pesat dan senario serentak, dan C sesuai untuk senario di mana prestasi ekstrem dan kawalan peringkat rendah diperlukan. 1) Golang meningkatkan prestasi melalui pengumpulan sampah dan mekanisme konvensional, dan sesuai untuk pembangunan perkhidmatan web yang tinggi. 2) C mencapai prestasi muktamad melalui pengurusan memori manual dan pengoptimuman pengkompil, dan sesuai untuk pembangunan sistem tertanam.

Python lebih mudah dipelajari dan digunakan, manakala C lebih kuat tetapi kompleks. 1. Sintaks Python adalah ringkas dan sesuai untuk pemula. Penaipan dinamik dan pengurusan memori automatik menjadikannya mudah digunakan, tetapi boleh menyebabkan kesilapan runtime. 2.C menyediakan kawalan peringkat rendah dan ciri-ciri canggih, sesuai untuk aplikasi berprestasi tinggi, tetapi mempunyai ambang pembelajaran yang tinggi dan memerlukan memori manual dan pengurusan keselamatan jenis.

Python lebih baik daripada C dalam kecekapan pembangunan, tetapi C lebih tinggi dalam prestasi pelaksanaan. 1. Sintaks ringkas Python dan perpustakaan yang kaya meningkatkan kecekapan pembangunan. 2. Ciri-ciri jenis kompilasi dan kawalan perkakasan meningkatkan prestasi pelaksanaan. Apabila membuat pilihan, anda perlu menimbang kelajuan pembangunan dan kecekapan pelaksanaan berdasarkan keperluan projek.

Perbezaan prestasi antara Golang dan C terutamanya ditunjukkan dalam pengurusan ingatan, pengoptimuman kompilasi dan kecekapan runtime. 1) Mekanisme pengumpulan sampah Golang adalah mudah tetapi boleh menjejaskan prestasi, 2) Pengurusan memori manual C dan pengoptimuman pengkompil lebih cekap dalam pengkomputeran rekursif.

Python dan C masing -masing mempunyai kelebihan sendiri, dan pilihannya harus berdasarkan keperluan projek. 1) Python sesuai untuk pembangunan pesat dan pemprosesan data kerana sintaks ringkas dan menaip dinamik. 2) C sesuai untuk prestasi tinggi dan pengaturcaraan sistem kerana menaip statik dan pengurusan memori manual.
