const static double in derselben Klasse initialisieren
-
Hallo,
gibt es eine Möglichkeit eine "const static double" variable in derselben Klasse zu initialisieren?
Ich habe irgendwo gelesen, dass die möglich sein soll, allerdings weiß ich nicht wie es genau funktioniert.mfg
-
Meines Wissens sollte
class X { static const double Y = 0.25; };Standardkonform sein. Jedenfalls beherrschen es alle Compiler ab gcc 2.95.4 und VC++7, die ich hier habe (VC++6 kanns natürlich nicht).
-
class Base { static const double d; }; const double Base::d = 5.0;LordJaxom: In der Klassendeifinition dürfen nur konstante statische integrale Typen initialisiert werden.
Übrigens lässt sich dein Code bei mir mit VC++ 2003 nicht kompilieren.
-
LordJaxom schrieb:
Meines Wissens sollte
class X { static const double Y = 0.25; };Standardkonform sein. Jedenfalls beherrschen es alle Compiler ab gcc 2.95.4 und VC++7, die ich hier habe (VC++6 kanns natürlich nicht).
Das dachte ich auch aber das geht nur bei den Ganzzahltypen nicht bei double usw.
-
Hallo
das wird in der Implementation erledigt :
// Header class X { static const double Y; }; ... // Implementation const double X::Y = 0.25;/ Edit : Hab irgendwie Michaels Beitrag überlesen..
bis bald
akari
-
Danke!
Das funktioniert jetzt.
-
Ah, alles klar - hatte double falsch einsortiert (tatsächlich mach ich es in meinem Code nur mit ints - kein Wunder dass das funktioniert
), danke für die Klarstellung Michael E.
-
eine Frage noch:
Warum darf man nur statische integrale Typen sofort initialisieren?
Was hat das genau für Vorteile?