Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menentukan Pemalar Statik Peribadi `std::string` dalam C ?

Bagaimana untuk Menentukan Pemalar Statik Peribadi `std::string` dalam C ?

Linda Hamilton
Lepaskan: 2024-12-27 09:36:13
asal
251 orang telah melayarinya

How to Define a Private Static Constant `std::string` in C  ?

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";
};
Salin selepas log masuk

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";
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan