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
Lepaskan: 2024-12-28 20:40:18
asal
814 orang telah melayarinya

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

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!

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