Konstanten in den Header?
-
Morgen!
Gehören die Werte einer Konstanten direkt in die Headerdatei?bsp.
// header.h const int ROCKY = 8;
wäre das richtig? oder kommt der konkrete Werte, also die 8, normalerweise in die cpp?
-
Eine Konstante muss direkt initalisiert werden, sonst murrt der Compiler -> jedenfalls meiner ;).
[ Dieser Beitrag wurde am 18.04.2003 um 11:36 Uhr von BodPa editiert. ]
-
Eine Konstante muss direkt initalisiert werden, sonst murrt der Compiler ->
Aber nicht, wenn sie nur deklariert wird. Das ist also völlig ok:
// Deklaration extern const int i; // irgendwo anders. const int i = 22;
Gehören die Werte einer Konstanten direkt in die Headerdatei?
Besser ist das.
-
das wäre richtig.
aber konstanten haben als default internal linkage.
also sind das dann verschiedene ROCKYs pro unit.
wenn du sie allerdings nur als compile-time konstante verwendest, ist das egal.
wenn du aber die adresse von ROCKY benötigst, musst du speicher für sie anlegen.
einmal.
das heißt, in die headerdatei kommt dann:extern const int ROCKY;
ohne initialisierung!
und in eine!! unitconst int ROCKY = 10; //oder was auch immer
ist dann aber nicht mehr kompilierzeit konstant