003
08.03.2006, 14:34 Uhr
RHBaum
|
Zitat: |
In der problem_datei.cpp hole ich mir die Instanzen via
C++: extern class1 klasse_1; extern class2 klasse_2;
|
Warum ?
mit extern sagst du dem compiler, das du die instanz klasse_1 und klasse_2 irgendwo ausserhalb schon instanziiert hasst, und diese Verbindung erst beim linken herstellen moechtest .... und hasst du das ? wo in deinem Code werden die Instanzen klasse_1 und klasse_2 erzeugt. also irgendwo in einer anderen cpp (oder scho kompiliert in ner lib) in nem offiziellen teil muss sowas auftauchen !
class1 klasse_1; class2 klasse_2;
tut es das ? wenn nicht, mosert dein linker natuerlich, da er fuer die "referenz" in deiner problem_datei.cpp die zugehoerigen richtige Instanz ned finden kann.
extern sollt man sehr mit bedacht einsetzen, glaub nicht das du es wirklich absichtlich nutzen wolltest. extern nimmt man meist, um globale Instanzen zu erzeugen, oder um zugriff auf vordefinierte Bereiche/Variablen zu bekommen die einfach in ner zentralen datei verwaltet werden sollen .... Und das sollt man schon mit Bedacht einsetzen (sauberer Stil ! globale variablen = boese).
zeig mal den code von problem_datei.cpp
Ciao ... Dieser Post wurde am 08.03.2006 um 14:37 Uhr von RHBaum editiert. |