static-Def. von einer Variablen in einer Klasse



  • Halli hallo zusammen.

    Ich steh mal wieder total auf dem Schlauch 😞
    Ich habe eine Klasse geschrieben und brauche da halt einen "Instanzzähler". Aber irgendwie funktioniert das nicht.
    Meine Klasse:

    class CElements  
    {
    public:
    	static int	counter;
    
    	CElements(); 
    	CElements(byte nType, CString sTitle, CElements* pPrevElement); 		
    	virtual ~CElements();
    .
    .
    .
    };
    

    Dann habe ich den Konstruktor wie folge bearbeitet:

    CElements::CElements()
    {
    	// Eindeutige ID für das Element festlegen
    	CElements::counter++;
    	id = CElements::counter;
    }
    

    Und alles was mein Compiler zu sagen hat, ist:

    Elements.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: static int CElements::counter" (?counter@CElements@@2HA)

    Ich hoffe, dass ihr mir schnell helfen könnt 😉 Ich seh den Fehler einfach nicht.
    Liebe Grüße und danke, vom Schuri 🙂



  • Das in die cpp noch schreiben

    int CElements::counter = 0;
    

    Das in deiner KLasse ist lediglich eine Deklaration.
    Da fehlt noch die Definition und die kommt in die cpp-Datei.


Anmelden zum Antworten