Seite 1 von 1

Statische Klasseneigenschaften initialisieren

Verfasst: Mi Aug 18, 2010 12:50 am
von hackmack
Hallo

wie kann ich statische Klasseneigenschaften, welche nicht als public deklariert sind, initialisieren?

Bei public kann man es einfach folgendermassen machen:

Code: Alles auswählen

class test
{
    public:
        static int counter;
};
int test::counter = 5;
Wenn counter protected oder private ist, gibt mir der Compiler logischerweise einen Fehler aus.

Mfg.
hackmack

Re: Statische Klasseneigenschaften initialisieren

Verfasst: Mi Aug 18, 2010 9:46 am
von Xin
hackmack hat geschrieben:Hallo

wie kann ich statische Klasseneigenschaften, welche nicht als public deklariert sind, initialisieren?

Bei public kann man es einfach folgendermassen machen:

Code: Alles auswählen

class test
{
    public:
        static int counter;
};
int test::counter = 5;
Wenn counter protected oder private ist, gibt mir der Compiler logischerweise einen Fehler aus.
So logisch ist das eigentlich nicht. Welchen Compiler verwendest Du und welchen Fehler gibt er aus? (den Fehler mitzuschicken, gehört nebenher zu einer sinnvollen Frage ^^)

Wenn int test::counter = 5 nämlich in der .cpp Datei steht, dann würde ich das als korrekt empfinden, auch wenn static int counter als private gekennzeichnet ist.

Re: Statische Klasseneigenschaften initialisieren

Verfasst: Do Aug 19, 2010 11:04 pm
von hackmack
Xin hat geschrieben:den Fehler mitzuschicken, gehört nebenher zu einer sinnvollen Frage ^^
Sorry, hatte ich vergessen.


Komischerweise geht es jetzt einwandfrei, auch wenn static int counter private/protected ist. War wohl bei meinem ersten Posting etwas verschlafen :D