Ralat Pautan Pembolehubah Statik [Pendua]
Dalam pengaturcaraan C, ralat pautan boleh berlaku apabila pembolehubah statik diisytiharkan tetapi tidak ditakrifkan dalam kod tersebut. Ralat ini menunjukkan bahawa pemaut tidak dapat mencari definisi pembolehubah statik semasa fasa pemautan.
Dalam kod yang diberikan, Log kelas mempunyai pembolehubah statik theString yang diisytiharkan dalam fail pengepala Log.h, tetapi ia adalah tidak ditakrifkan dalam fail pelaksanaan Log.cpp. Untuk menyelesaikan ralat pautan, pembolehubah statik mesti ditakrifkan dalam fail pelaksanaan.
Kod yang diperbetulkan dalam Log.cpp hendaklah:
#include "Log.h" #include <ostream> string Log::theString; // Define the static variable here void Log::method(string arg) { theString = "hola"; cout << theString << endl; }
Selain itu, disyorkan untuk mengalih keluar menggunakan ruang nama std; baris daripada fail pengepala. Amalan ini menghalang pencemaran ruang nama global dengan simbol std, yang boleh membawa kepada konflik penamaan dan kemungkinan ralat.
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat Pautan Pembolehubah Statik dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!