Rumah >pembangunan bahagian belakang >C++ >Mengapa Kod C Saya Mendapat Ralat Penyambung 'Rujukan Tidak Ditakrifkan kepada Pembolehubah Statik'?

Mengapa Kod C Saya Mendapat Ralat Penyambung 'Rujukan Tidak Ditakrifkan kepada Pembolehubah Statik'?

Patricia Arquette
Patricia Arquetteasal
2024-12-19 03:18:12183semak imbas

Why Does My C   Code Get an

Rujukan Tidak Ditakrifkan kepada Pembolehubah Statik: Menyelesaikan Ralat Pautan

Apabila menyusun kod C, anda mungkin menghadapi ralat "Simbol tidak ditentukan" semasa merujuk pembolehubah statik ditakrifkan dalam fail pengepala. Ralat ini berlaku kerana pemaut tidak dapat mencari definisi pembolehubah statik semasa memaut.

Dalam contoh yang disediakan, fail pengepala Log.h mengisytiharkan ahli rentetan statik theString. Walau bagaimanapun, takrifan pembolehubah statik ini tiada daripada fail Log.cpp. Untuk menyelesaikan isu ini, ikut langkah berikut:

  1. Tentukan Pembolehubah Statik dalam Fail CPP:

    • Tambah takrifan pembolehubah statik ke fail CPP (Log.cpp).
    #include "Log.h"
    #include <iostream>
    
    // Define the static variable here
    string Log::theString;
    
    void Log::method(string arg) {
        theString = "hola";
        cout << theString << endl;
    }
  2. Alih Keluar Pengisytiharan Ruang Nama yang Tidak Diperlukan:

    • Alih keluar menggunakan ruang nama std; daripada fail pengepala (Log.h). Ini dianggap amalan buruk kerana ia mencemarkan ruang nama global.

Dengan membuat perubahan ini, pemaut akan dapat mencari definisi pembolehubah statik semasa memaut, menyelesaikan Ralat "simbol tidak ditentukan".

Atas ialah kandungan terperinci Mengapa Kod C Saya Mendapat Ralat Penyambung 'Rujukan Tidak Ditakrifkan kepada Pembolehubah Statik'?. 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