Rujukan Tidak Ditakrifkan kepada Ahli Kelas Statik
Dalam C , ahli statik yang ditakrifkan dalam kelas memerlukan pengendalian yang betul untuk mengelakkan ralat penyusunan.
Sebab Undefined Rujukan
Ahli statik, walaupun diisytiharkan dalam definisi kelas, tidak ditakrifkan secara automatik melainkan dilakukan secara eksplisit di tempat lain. Ini kerana pengisytiharan berbeza daripada takrifan dalam C . Pengisytiharan hanya memperkenalkan ahli, manakala definisi memperuntukkan memori dan memberikan nilai awal.
Contoh
Pertimbangkan kelas berikut dengan ahli statik yang tidak diisytiharkan:
class Example { static bool exampleStaticMember; };
Percubaan untuk menggunakan exampleStaticMember tanpa mentakrifkannya akan mengakibatkan "undefined references".
Keperluan Definisi
Untuk menyelesaikan isu ini, ahli statik mesti ditakrifkan secara eksplisit, biasanya dalam fail sumber (.cpp) yang mengandungi kelas takrifan. Takrifan hanya mengisytiharkan ahli sekali lagi dengan jenis datanya dan koma bertitik (';').
bool Example::exampleStaticMember;
Kes Khas
Penggunaan Statik Lain
Perhatikan bahawa kata kunci statik mempunyai makna yang berbeza apabila digunakan di luar kelas:
Atas ialah kandungan terperinci Mengapa Saya Mendapat \'Rujukan Tidak Ditakrifkan\' Apabila Menggunakan Ahli Kelas Statik dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!