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!! unit

    const int ROCKY = 10; //oder was auch immer
    

    ist dann aber nicht mehr kompilierzeit konstant


Anmelden zum Antworten