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;