Rumah >pembangunan bahagian belakang >C++ >Rujukan Tidak Ditakrifkan kepada Ahli Statik dalam C : Bagaimana untuk Menyelesaikan Isu Kompilasi?

Rujukan Tidak Ditakrifkan kepada Ahli Statik dalam C : Bagaimana untuk Menyelesaikan Isu Kompilasi?

Susan Sarandon
Susan Sarandonasal
2024-12-28 20:40:18784semak imbas

Undefined Reference to Static Member in C  : How to Resolve Compilation Issues?

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!

Kenyataan:
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