C++ Initialisierung des nicht Konstanten statischen member-variable?

Habe ich eine Qualifikation, die Fehler der member-variable 'objectCount'. Der compiler gibt auch 'ISO-C++ verbietet in-class-Initialisierung von non-const static member'.
Dies ist die main-Klasse:

#include <iostream>
#include "Tree.h"
using namespace std;

int main()
{
    Tree oak;
    Tree elm;
    Tree pine;

    cout << "**********\noak: " << oak.getObjectCount()<< endl;
    cout << "**********\nelm: " << elm.getObjectCount()<< endl;
    cout << "**********\npine: " << pine.getObjectCount()<< endl;
}

Dies ist die tree-Klasse, die enthält die non-const static objectCount:

#ifndef TREE_H_INCLUDED
#define TREE_H_INCLUDED

class Tree
{
    private:
        static int objectCount;
    public:
        Tree()
        {
            objectCount++;
        }
        int getObjectCount() const
        {
            return objectCount;
        }
    int Tree::objectCount = 0;
}
#endif //TREE_H_INCLUDED
  • Es gibt eine alternative, die nicht erwähnt wird in eine der vorgeschlagenen Antworten zum Zeitpunkt des Schreibens dieses Artikels, die Ihnen ermöglicht, halten alles in einem single header. Siehe das Beispiel in dies ALSO Antwort, er ordnet sich perfekt an deinen Beispiel.
InformationsquelleAutor kifcaliph | 2011-07-16
Schreibe einen Kommentar