Apabila kita menulis atur cara C++, kadangkala kita menemui mesej ralat berikut:
"Ralat sintaks C++: ahli enumerasi mestilah unik"
Ini kerana dalam jenis enumerasi, nama ahli enumerasi mestilah Unik dan tidak boleh berulang.
Jadi, bagaimana untuk membetulkan ralat ini? Beberapa penyelesaian diberikan di bawah.
Kaedah 1: Ubah suai nama ahli enumerasi secara manual
Kaedah paling mudah ialah mengubah suai nama ahli enumerasi secara manual untuk memastikan mereka unik. Contohnya, tukar nama ahli pendua kepada nama yang berbeza.
Sebagai contoh, jika kita mentakrifkan jenis penghitungan yang mengandungi dua ahli dengan nama ahli yang sama, seperti yang ditunjukkan di bawah:
enum Fruit { Banana, Apple, Strawberry, Apple };
Kemudian pengkompil akan menggesa "Ralat sintaks C++: Ahli penghitungan mestilah unik". Kita boleh menukar salah satu nama ahli kepada nama lain seperti ini:
enum Fruit { Banana, Apple, Strawberry, Orange };
Ini akan membetulkan ralat ini.
Kaedah 2: Gunakan typedef untuk mentakrifkan jenis penghitungan baharu
Jika kita tidak mahu mengubah suai jenis penghitungan asal, kita juga boleh menggunakan typedef untuk mentakrifkan jenis penghitungan baharu dan menamakan semula jenis penghitungan asal.
Sebagai contoh, kita boleh menamakan semula jenis enumerasi Buah di atas kepada FruitType:
typedef enum { Banana, Apple, Strawberry, Apple } FruitType;
Dengan cara ini, FruitType boleh digunakan dalam program untuk menggantikan jenis enumerasi Buah asal.
Kaedah 3: Gunakan kelas penghitungan
C++11 memperkenalkan ciri baharu kelas enum (kelas enum), yang boleh mengehadkan ruang nama ahli penghitungan semasa mentakrifkan jenis penghitungan, untuk mengelakkan konflik penamaan.
Sebagai contoh, kita boleh menggunakan kelas enum untuk mentakrifkan jenis penghitungan bernama Fruit dan mengehadkan ruang nama ahlinya kepada Fruit:
enum class Fruit { Banana, Apple, Strawberry, Apple };
Pada masa ini, jika kita mentakrifkan dua ahli dengan nama yang sama, pengkompil akan melaporkan ralat , bukannya amaran.
Ringkasan:
Dalam C++, ahli enumerasi mestilah unik dan tidak boleh diulang. Jika pengkompil menggesa "Ralat sintaks C++: ahli penghitungan mestilah unik", anda boleh mengubah suai nama ahli penghitungan secara manual, gunakan typedef untuk mentakrifkan jenis penghitungan baharu atau gunakan kelas penghitungan untuk menyelesaikan masalah. Kaedah menggunakan kelas penghitungan ialah ciri baharu yang diperkenalkan dalam C++11, yang boleh mengelakkan masalah penamaan konflik ahli penghitungan dengan berkesan.
Atas ialah kandungan terperinci Ralat sintaks C++: Ahli penghitungan mestilah unik, bagaimanakah saya harus mengubah suainya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!