Rujukan Tidak Ditakrifkan kepada Pembolehubah Statik dalam C
Apabila cuba mengakses pembolehubah statik dalam kaedah bukan statik kelas, pembangun boleh menghadapi ralat "rujukan tidak ditentukan". Untuk menyelesaikan isu ini, adalah penting untuk memberikan definisi bagi pembolehubah statik di luar pengisytiharan kelas.
Dalam coretan kod yang disediakan:
class Helloworld{ public: static int x; void foo(); }; void Helloworld::foo(){ Helloworld::x = 10; };
Pembolehubah statik x diisytiharkan dalam kelas tetapi tidak mempunyai definisi. Untuk menangani perkara ini, kita boleh menambah baris berikut di luar definisi kelas:
int Helloworld::x;
Ini menyediakan takrifan untuk x, membenarkan kaedah foo() mengaksesnya tanpa menghadapi ralat rujukan yang tidak ditentukan. Adalah penting untuk ambil perhatian bahawa nilai lalai untuk pembolehubah statik ialah sifar, jadi pemula eksplisit boleh disediakan seperti yang dikehendaki.
Dengan mengikuti langkah ini, pembangun boleh mengakses pembolehubah statik dengan berkesan dalam kaedah bukan statik, memastikan betul fungsi kod dan mengelakkan ralat rujukan yang tidak ditentukan.
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'Rujukan Tidak Ditakrifkan' Apabila Mengakses Pembolehubah Statik dalam Kaedah Bukan Statik C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!