• (C++) Наследуемый Singleton класс. Как реализовать?

    Trrrrr
    @Trrrrr
    один из вариантов через тимплейты:
    Что то вроде:
    #include <iostream>
    template <class T> class Singleton 
    {
    protected:
    	Singleton(){};
    	Singleton(const Singleton&);
    
    public:
    	static T& GetInstance()
    	{
    		static T instance;
    
    		return instance;
    	}
    };
    
    class AnotherSingleton : public Singleton<AnotherSingleton>
    {
    private:
    	int i;
    
    public:
    	void SomeFunc()
    	{
    		i = 10;
    		std::cout<< i;
    	}
    };
     
    int _tmain(int argc, _TCHAR* argv[])
    {
    	AnotherSingleton::GetInstance().SomeFunc();
    	return 0;
    }

    Это примерный код, его можно улучшить.

    Кстати в с++11 такой код уже будет являться тред сейфовым.

    На самом деле такой класс можно очень хорошо улучшить, но для примера подойдет.
    Ответ написан
    5 комментариев