Was kommt in den Header/Quelldatei?
-
Aus "C++ Primer"
2.32
Welche der folgenden Deklarationen und Definitionen würden Sie in einen Header oder eine Quelldatei schreiben? Warum?a) int var;
b) const double pi = 3.1416;
c) extern int total = 255;
d) const double sq2 = sqrt(2.0);Eure Meinung?
MfG
Stromberg
-
Ich würde alle 4 in Quelldateien packen.
-
this->that schrieb:
Ich würde alle 4 in Quelldateien packen.
Dito. Kommt ganz darauf an was diese 4 Variablen für eine bedeutung in meinem Programm haben. Nicht jeder Teil meines Programmes der die Header-Datei braucht, brauch auch diese Werte.
-
Nach C++ Primer soll ein konstantes Objekt das mit einem Wert initialisiert wird, der ein konstanter Ausdruck ist in einer Headerdatei definiert werden.
Nun aber meine Frage: Was ein konstantes Objekt ist kann ich mir schon vorstellen (const int var=.....) aber was ist ein konstanter Ausdruck?MfG
Stromberg
-
ZB was Du unter b und c aufgeführt hast. Die würde ich in einen Header packen.
-
Belli schrieb:
ZB was Du unter b und c aufgeführt hast. Die würde ich in einen Header packen.
Tipfehler, sorry, ich meine b und d!
-
Ich vermute, daß a und c in einem Header Linking-Errors erzeugen, wenn mehrere Quelldateien diesen Header inkludieren und dann zusammengelinkt werden sollen.
-
Aber noch zu meiner Frage, weiß jemand was ein konstanter Ausdruck ist?
MfG
Stromberg
-
Japp - ein Ausdruck, der ausschließlich als RValue verwendet werden kann:
z.bsp.:
const int a = 123; const size_t b = 123; #define c 123 123bb
-
Compilezeit-konstant ist ein Ausdruck, dessen Wert schon bei der Kompilierung feststeht. Also Literale, Enumerationen, Template-Argumente, mit compilezeit-konstanten Ausdrücken initialisierte
const-Variablen.Edit: falsche Definition von konstantem Ausdruck.