Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Mentakrifkan Ahli Kelas Integer Statik dengan Betul dalam C?

Bagaimanakah Saya Mentakrifkan Ahli Kelas Integer Statik dengan Betul dalam C?

Barbara Streisand
Lepaskan: 2024-12-01 08:29:11
asal
593 orang telah melayarinya

How Do I Properly Define Static Const Integer Class Members in C  ?

Mentakrifkan Ahli Integer Konst Statik dalam Definisi Kelas: Penerokaan

C membenarkan pengisytiharan ahli integer const statik dalam definisi kelas. Walau bagaimanapun, adalah penting untuk memahami perbezaan antara permulaan dan definisi dalam konteks ini.

Dalam kod contoh yang disediakan:

class test
{
public:
    static const int N = 10;
};
Salin selepas log masuk

Pengisytiharan N dalam kelas memulakannya dengan nilai 10. Walau bagaimanapun, ini tidak bersamaan dengan definisi. Untuk menyelesaikan ralat pemaut yang dihadapi, definisi N yang berasingan diperlukan di luar definisi kelas. Ini boleh dicapai melalui definisi skop ruang nama, seperti:

const int test::N = 10;
Salin selepas log masuk

Secara bergantian, kata kunci constexpr boleh digunakan untuk kedua-dua mengisytiharkan dan mentakrifkan ahli integer const statik dalam satu langkah, menghapuskan keperluan untuk yang berasingan definisi:

class test
{
public:
    static constexpr int N = 10;
};
Salin selepas log masuk

Dalam kes di mana std::min dipanggil, ia menjangkakan parameter yang diluluskan melalui rujukan. Oleh kerana N diisytiharkan sebagai integer const statik, ia perlu ditakrifkan untuk lulus keperluan rujukan. Mengulas panggilan ke std::min membenarkan kod untuk disusun kerana takrifan N tidak lagi diperlukan, walaupun ia masih dirujuk.

Ringkasnya, manakala C membenarkan pengamulaan ahli integer const statik dalam definisi kelas, definisi berasingan diperlukan untuk merujuk nilai. Ini boleh dicapai melalui definisi skop ruang nama atau dengan menggunakan kata kunci constexpr.

Atas ialah kandungan terperinci Bagaimanakah Saya Mentakrifkan Ahli Kelas Integer Statik dengan Betul 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