Rumah >pembangunan bahagian belakang >C++ >Rujukan Tidak Ditakrifkan kepada Ahli Statik dalam C : Bagaimana untuk Menyelesaikan Isu Kompilasi?
Rujukan Tidak Ditakrifkan kepada Ahli Statik: Menyelesaikan Isu Kompilasi
Apabila bekerja dengan ahli statik dalam C , terutamanya semasa menggunakan pengkompil silang, anda mungkin menghadapi ralat "rujukan tidak ditentukan kepada ahli statik." Ralat ini berlaku kerana kekurangan definisi untuk pembolehubah ahli statik dalam fail sumber. Untuk menyelesaikan isu ini, ikuti langkah berikut:
Memahami Isu
Dalam contoh anda, anda telah menentukan pembolehubah ahli statik _frequency dalam kelas WindowsTimer. Walau bagaimanapun, anda belum menentukan data sebenarnya dalam fail sumber yang berasingan (fail .cpp). Ini ialah punca ralat penyusunan.
Penyelesaian: Menentukan Ahli Statik
Untuk membetulkan ralat, tentukan pembolehubah ahli statik dalam fail sumber yang berasingan, biasanya fail .cpp. Contohnya:
// WindowsTimer.cpp LARGE_INTEGER WindowsTimer::_frequency;
Takrifan ini memperuntukkan memori untuk pembolehubah statik dan membenarkan pengkompil merujuknya semasa peringkat pemautan.
Mengapa Definisi Luaran Diperlukan
Apabila bekerja dengan ahli statik, adalah penting untuk memahami bahawa takrifan mereka mestilah di luar pengisytiharan kelas. Ini kerana pengkompil memerlukan definisi penuh ahli statik sebelum menjana kod dan memautkan fail objek.
Elakkan Meletakkan Definisi dalam Fail Pengepala
Sementara ia menggoda untuk mentakrifkan ahli statik di dalam fail pengepala (.h fail) untuk kemudahan akses, ini bukan amalan yang baik. Kemasukan berbilang fail pengepala boleh membawa kepada berbilang takrifan pembolehubah statik, mengakibatkan ralat pemaut atau gelagat tidak ditentukan.
Atas ialah kandungan terperinci Rujukan Tidak Ditakrifkan kepada Ahli Statik dalam C : Bagaimana untuk Menyelesaikan Isu Kompilasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!