konstante Konstante anlegen...
-
Juhu,
ich habe in einer HeaderDatei mit dem Befehl const char ... eine Konstante erstellt, aber in einer anderen HeaderDatei kann ich da nicht mehr drauf zugreifen. Wie kann man das auch Dateiübergreifend mit einbauen, ich habe natürlich beide header Dateien vorher in der eigentlichen application included. Hülfe
P.S: wäre ne Lösung der Heap speicher ??
-
mit extern
(glaub ich)
-
haste in der anderen headerdatei am anfang die eine headerdatei inkludiert?
-
ja, aber das funzt auch nicht und wirft nen Fehler... , was meint ihr mit "extern" ?
-
extern const char ...
-
Du könntest das so machen (hab ich mal in irgendeinem Quellcode gesehen)
///Globale Variablen #ifdef _HEADER_ extern #endif char foo #ifndef _HEADER_ = 12 #endif ; #ifndef _HEADER_ #define _HEADER_ //normaler Header #endif
Nachdem ersten inkludieren der Datei wird immer mit extern darauf verwiesen, dass diese Variable in einem anderen Teil des Programmes definiert ist.
Diese Zeilen über der Variablen musst du einfach immer dazuschreiben und den Wert weißt du der Variablen einfach im #ifned zu.
-
schrecklicher trick. da definiere das objekt doch lieber in einer cpp und mach in allen headern diese variable extern. in allen? nee, einfach nur in einem und wer das objekt brauch, inkludiert den einen header (wo extern int... steht).
aber wie ist das bei const? war das da nicht so, daß das einfach so und ohne extern geht?
-
Hatte das wie gesagt mal gesehen und ich pers. habe globale Variablen sowieso _nur_ in .cpp Dateien und wenn ich die noch wo anderst benötige, dann mache ich mir ne Singleton.
-
danke für die schnelle Hilfe
-
was meint ihr mit "extern" ?
http://www.henkessoft.de/cpp_school/extern.htm
http://www.cpp-tutor.de/cpp/le07/le07_03.htm#extern
http://publib.boulder.ibm.com/infocenter/comphelp/index.jsp?topic=/com.ibm.vacpp6a.doc/language/ref/declarations.extsc.htm
http://cplus.about.com/library/weekly/aa101902i.htm
-
const char "erstellt" eine Konstante, aber const char* nicht. Und Befehle gibt es in C++ auch nicht.
const char* foo = "Hallo Spencer"
Hier hast du einen nicht konstanten Zeiger auf einen konstanten String. Wäre der Zeiger selbst auch noch konstant, könntest du ihn auch ganz ohne extern in einen Header stecken.
const char* const foo = ...