Statische Klasseneigenschaften initialisieren

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
Benutzeravatar
hackmack
Beiträge: 85
Registriert: Do Mär 26, 2009 10:16 pm

Statische Klasseneigenschaften initialisieren

Beitrag von hackmack » Mi Aug 18, 2010 12:50 am

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
They say, if you play a Microsoft CD backwards, you hear satanic messages. Thats nothing, cause if you play it forwards, it installs Windows.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Statische Klasseneigenschaften initialisieren

Beitrag von Xin » Mi Aug 18, 2010 9:46 am

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.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
hackmack
Beiträge: 85
Registriert: Do Mär 26, 2009 10:16 pm

Re: Statische Klasseneigenschaften initialisieren

Beitrag von hackmack » Do Aug 19, 2010 11:04 pm

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
They say, if you play a Microsoft CD backwards, you hear satanic messages. Thats nothing, cause if you play it forwards, it installs Windows.

Antworten