Problem mit Singelton VS 8.0



  • Hallo

    hab ein Problem bei der Anwendung des Singelton Pattern.
    folgender Code
    main.cpp

    #include "stdafx.h"
    #include "foobar.h"
    
    foobar::setFoobar(12);
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	foobar::getFoobar().dosth();
    	return 0;
    }
    

    foobar.h

    class foobar
    {
    public:
    	static foobar& getFoobar();
    	static void setFoobar(int var);
    	void dosth();
    
    private:
    	foobar(void){}
    	foobar(const foobar& op) {}
    
    	static int m_localVar;
    
    public:
    	~foobar(void);
    };
    

    foobar.cpp

    int m_localVar = 0;
    
    foobar& foobar::getFoobar()
    {
    static foobar instance;
    return instance;
    }
    
    void foobar::setFoobar(int var)
    {
    m_localVar=var;
    }
    void foobar::dosth()
    {
    // irgendein code
    }
    

    Der Compiler interpretiert leider den aufruf der statischen Methode setFoobar()
    als redeklaration.

    Was mache ich da falsch?



  • Die Funktion einfach nicht außerhalb eines Funktionsblocks aufrufen!


Anmelden zum Antworten