Dalam usaha mentakrif rentetan pemalar statik peribadi untuk kelas, seperti kilang bentuk, anda mungkin menghadapi sekatan jalan dengan penyusun C. Ini disebabkan oleh sekatan yang dikenakan oleh piawaian C. Untuk mengatasi cabaran ini dan mewujudkan ahli data rentetan const statik, pertimbangkan penyelesaian berikut:
Menggunakan pembolehubah sebaris, diperkenalkan dalam C 17, menyediakan kemudahan dan cara yang cekap untuk mentakrifkan pembolehubah tetap statik:
class A { private: inline static const string RECTANGLE = "rectangle"; };
Versi Pra-C 17 memerlukan mentakrifkan ahli statik di luar kelas dan menyediakan pemula secara berasingan:
class A { private: static const string RECTANGLE; };
const string A::RECTANGLE = "rectangle";
Adalah penting untuk ambil perhatian bahawa sintaks dengan pemula di dalam definisi kelas dikhaskan untuk jenis kamiran dan enum sahaja.
Walaupun #define kelihatan menggoda untuk menentukan pemalar, ia memperkenalkan tahap keterlihatan global yang mungkin tidak diingini. Sebagai contoh, jika pemalar ditakrifkan dalam fail pengepala, ia akan menjadi boleh diakses secara global untuk semua bahagian program. Ini boleh membawa kepada konflik penamaan dengan pelaksanaan berbeza yang mentakrifkan pemalar yang sama, antara isu berpotensi lain.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mentakrifkan Ahli Data Rentetan Malar Statik Peribadi dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!