Konstante innerhalb einer Klasse
-
Hallo,
wie kann ich innerhalb einer Klasse eine Konstante vom Typ der Klasse
deklarieren?So klappt es leider nicht:
class MyObj { public: MyObj(int i); virtual ~MyObj(); public: const MyObj OBJ(0); // auch mit static nicht... }Wie krieg ich das hin?
Gruß,
Jens
-
für was bruachst das?
-
Ganz einfaches Beispiel:
Ich hab ne Klasse Color und möchte mir die Farben RED, GREEN, BLUE als
Konstanten in der Klasse deklarieren, damit man den Bezug zur Klasse sieht.Ich komm eigentlich aus der Java-Programmierung und da brauch man das
ziemlich oft...
-
Dann sollte das so aussehen:
class A { public: int x; A(int _x) :x(_x) { } static const A abc; }; const A A::abc(255);btw, macht nur Sinn wenns auch static ist, andernfalls hat jedes Objekt der Klasse eine Kopie der Konstanten
-
Anders als mit static gehts auch nicht so gut..
Aber Java-Programmierer sind entschuldigt, die kennen das ja nicht, da gibts Objekte ja nur über Zeiger.
-
Da wäre doch ein enum geeigneter...
class Color { public: enum COLORVALUE { RED, GREEN }; };