Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mentakrifkan Ahli Data Rentetan Malar Statik Peribadi dalam C?

Bagaimanakah Saya Boleh Mentakrifkan Ahli Data Rentetan Malar Statik Peribadi dalam C?

DDD
DDDasal
2024-12-25 04:20:14316semak imbas

How Can I Define Private Static Constant String Data Members in C  ?

Mencapai Ahli Data String Const Statik: Panduan Komprehensif

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:

Pembolehubah Sebaris (C 17 dan Kemudian)

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";
};

Definisi Luaran dan Permulaan

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.

Perkataan pada #define

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!

Kenyataan:
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