Rumah > pembangunan bahagian belakang > C++ > Mengapa Saya Mendapat Ralat 'Rujukan Tidak Ditakrifkan' Apabila Mengakses Pembolehubah Statik dalam Kaedah Bukan Statik C?

Mengapa Saya Mendapat Ralat 'Rujukan Tidak Ditakrifkan' Apabila Mengakses Pembolehubah Statik dalam Kaedah Bukan Statik C?

DDD
Lepaskan: 2024-12-15 15:36:11
asal
336 orang telah melayarinya

Why Do I Get an

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

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

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan