У меня есть четыре класса, давайте назовем S1, S2, S3 и S4. Эти классы являются синглетонами; каждый из них имеет метод getInstance и метод finalize, а также частную переменную экземпляра.
Теперь, чтобы избежать повторения методов finalize и getInstance, я пытаюсь создать класс SingletonMixin, что-то вроде:
template<class T> class SingletonMixin
{
public:
static T* getInstance();
private:
static T* instance;
};
Проблема здесь в следующем: как экземпляры синглтона могут храниться и сохранять их конструктор закрытым?
Редактировать
(осветления) * +1011 *
Я имею в виду, как я могу это сделать:
template<class T> T* SingletonMixin<T>::instance = 0;
template<class T> T* SingletonMixin<T>::getInstance()
{
if (instance == 0)
{
instance = T();
}
return instance;
};
но с частной конструкцией T T ()
Спасибо!