Statische variable für Objekt-Zählung in c++ - Klassen?

Ich würde gerne eine statische member-Variablen verfolgen, die Menge der Objekte, die gemacht wurden. Etwa so:

class test{
    static int count = 0;
    public:
        test(){
            count++;

        }
}

Dass nicht funktioniert, da, laut VC++a member with an in-class initializer must be constant. Also schaute ich mich um und anscheinend Sie tun sollen:

test::count = 0;

Wäre toll, aber ich wollen, zählen zu den privaten.

edit:
Oh boy, ich erkannte, dass ich tun müssen:

int test::count = 0;

Hatte ich gesehen, nur etwas tun test::count = 0, so bin ich davon ausgegangen, Sie würden sich nicht zu erklären, geben Sie wieder.

Ich würde gerne wissen, ob es einen Weg gibt, dies zu tun in der Klasse, obwohl.

edit2:

Was ich mit:

class test{
    private:
        static int count;
    public:
        int getCount(){
            return count;
        }
        test(){
            count++;

        }
}
int test::count=0;

Nun ist es zu sagen: 'test' followed by 'int' is illegal (did you forget a ';'?)

edit3:

Yup, ich hab vergessen, ein Semikolon nach der Klassendefinition. Ich bin nicht gewöhnt zu tun.

  • Sie haben vergessen zu kündigen, Ihre Klassendefinition mit einem ;
InformationsquelleAutor mowwwalker | 2011-10-15
Schreibe einen Kommentar