const in .h Datei definieren ?



  • Ich möchte gerne das Konstanten genau dann bekannt sind, wenn die cpp Datei die entsprechende .h Datei geladen hat. Wenn ich allerdings

    constants.h

    namespace constants 
    { /// Gelegentlich benoetigte mathematische Werte 
    	namespace math 
    	{ /// Die Kreiszahl pi 
    		double const pi = 3.1415926535897932384626433832795028841972;
    	}
    }
    

    verwende, dann bringt mir das einen Linkerfehler sobald ich die .h Datei in mehr wie einer cpp Datei laden.

    Geht es dann überhaupt das in der .h Datei zu definieren, oder brauche ich dafür eine cpp Datei in der ich die constanten als 'extern' definiere? Ich würde nämlich gerne auf die cpp Datei verzichten.

    Matthias



  • Inklude-Wächter.



  • Du meinst ein

    #ifndef CONSTANTS_H
    #define CONSTANTS_H
    

    Habe ich schon integriert. Ich hatte aber bei anderen Konstanten vergessen das 'extern' wegzunehmen. Jetzt funktioniert es.

    Warum macht man Konstanten überhaupt 'extern' ?



  • Z.B. damit man eine Variable deklarieren und benutzen kann, die in einer anderen Übersetzungseinheit definiert wird.

    EDIT: Gilt auch für Konstanten.


Anmelden zum Antworten