Menyelesaikan Ralat Simbol Luaran Tidak Selesai (LNK2001) untuk Objek Statik
Dalam percubaan untuk menetapkan nilai kepada medan statik dalam satu kelas daripada kaedah utama, anda telah menghadapi ralat yang tidak dapat dijelaskan, "simbol luaran yang tidak dapat diselesaikan." Ralat ini menunjukkan bahawa pemaut tidak dapat mencari definisi untuk pembolehubah ahli statik semasa proses pemautan.
Menurut rujukan C, pengisytiharan ahli data statik di dalam definisi kelas bukanlah definisi. Ini bermakna anda tidak boleh menentukan pembolehubah ahli statik dalam kelas itu sendiri. Untuk menyelesaikan ralat, anda mesti mentakrifkan ahli statik di luar kelas dalam skop ruang nama.
Dalam kes anda, anda harus mentakrifkan pembolehubah ahli statik B::a di luar B kelas, seperti berikut:
<code class="cpp">A* B::a;</code>
Ini memastikan bahawa penyambung berjaya mengesan definisi pembolehubah ahli statik. Dengan mengikut Peraturan Satu Definisi (ODR), yang memastikan bahawa terdapat hanya satu definisi untuk setiap entiti dalam program, pengkompil boleh menyelesaikan simbol luaran dan berjaya memautkan kod tersebut.
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat \'Simbol Luaran Tidak Selesai\' (LNK2001) untuk Objek Statik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!