Mentakrifkan Ahli Data Statik Jenis const std::string
Dalam C , mentakrifkan pemalar statik persendirian untuk kelas boleh mencabar apabila menggunakan const std::jenis rentetan standard. Mesej ralat yang dihadapi menunjukkan bahawa kaedah yang digunakan tidak mematuhi piawaian ISO C.
Untuk menentukan pemalar literal peribadi tanpa menggunakan arahan #define, pertimbangkan dua pendekatan berikut:
Pembolehubah Sebaris (C 17 dan kemudian)
Sejak C 17, pembolehubah sebaris boleh digunakan untuk mengisytiharkan ahli data statik dengan pemula tetap. Ini dilakukan dengan menambahkan kata kunci sebaris sebelum pengisytiharan statik dalam definisi kelas:
class A { private: inline static const std::string RECTANGLE = "rectangle"; };
Definisi Luar Definisi Kelas (Sebelum C 17)
Sebelum C 17, ahli statik mesti ditakrifkan di luar definisi kelas dan dimulakan secara berasingan. Pengisytiharan statik dalam takrif kelas dibuat tanpa pemula:
class A { private: static const std::string RECTANGLE; }; // In an implementation file const std::string A::RECTANGLE = "rectangle";
Perhatikan bahawa sintaks untuk memulakan terus ahli statik dengan jenis bukan kamiran dalam takrifan kelas hanya dibenarkan dengan jenis kamiran dan enum.
Atas ialah kandungan terperinci Bagaimana untuk Menentukan Pemalar Statik Peribadi `std::string` dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!