Относительно наследования синглтон-класса - PullRequest
0 голосов
/ 01 мая 2020

Я наткнулся на код, в котором класс наследует одноэлементный класс. Класс Singleton имеет свой конструктор, деструктор как защищенный и конструктор копирования, = перегрузка оператора как частная. Этот класс Singleton использует ScopedLock для поддержки только 1 экземпляра. Производный класс имеет свой конструктор в Publi c, и этот конструктор инициализирует некоторые его закрытые члены. Мой вопрос заключается в том, какова цель наследования от класса Singleton, если у производного класса есть свой конструктор в Publi c и может быть создано несколько его объектов.

Поправьте меня, если я ошибся.

Код указан ниже:

class Singleton
{
private:
    Singleton(Singleton const&);
    Singleton& operator=(Singleton const&); protected: Singleton() { }
    virtual ~Singleton() { }
    static T* pInstance;
    static Lock mLock;

public:
    static T* GetInst()
    {
        ScopedLock<Lock> lock(mLock);
        if (pInstance == 0) pInstance = new T;
        return pInstance;
    }
};

class Temp : public Singleton<Temp>
{
    public: Temp();
    virtual ~Temp();
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...