Globalen Pointer "kopieren"



  • Hallo,

    wie kann man einem globalen Pointer einen anderen globalen Pointer zuweisen?

    //////////////////////////////////////////////////////
    // main.cpp
    BasisKlasse*       p_basis_klasse;
    AbgeleiteteKlasse* p_abgeleitete_klasse;
    
    int main(int argc, char** argv)
    {
        p_basis_klasse = new BasisKlasse;
        p_abgeleitete_klasse = new AbgeleiteteKlasse;
    
        p_abgeleitete_klasse->func();
        // hier soll jetzt p_basis_klasse also auf das gleiche Objekt wie
        // p_abgeleitete_klasse zeigen
    }
    
    //////////////////////////////////////////////////////
    // AbgeleiteteKlasse.h
    Class AbgeleiteteKlasse:public BasisKlasse
    {
        public:
        AbgeleiteteKlasse(};
        ~AbgeleiteteKlasse();
    
        void func();
    };
    
    //////////////////////////////////////////////////////
    // AbgeleiteteKlasse.cpp
    extern p_basis_klasse;
    extern p_abgeleitete_klasse;
    
    // K'tor & D'tor
    (...)
    
    void AbgeleiteteKlasse::func()
    {
        p_basis_klasse = p_abgeleitete_klasse;
    };
    

    Kompiliert ohne Fehler, bringt vom Linker aber ein

    error LNK2001: unresolved external symbol "int p_basis_klasse" (?p_basis_klasse@@3HA)
    error LNK2001: unresolved external symbol "int p_abgeleitete_klasse" (?p_abgeleitete_klasse@@3HA)



  • Schreibe Deine extern-Anweisung so:

    extern BasisKlasse*       p_basis_klasse; 
    extern AbgeleiteteKlasse* p_abgeleitete_klasse;
    

Anmelden zum Antworten