2012-06-23 2 views
0

У меня простой вопрос. Может ли подкласс иметь частный конструктор (т. Е. Для реализации singleton) в C++?Подкласс с частным конструктором в C++

class MySubClass : public MySuperClass { 
public: 
    // etc. 
private: 
    MySubClass(); 
    static MySubClass* _instance; 
}; 

Этот пример правильно?

+0

Возможный дубликат [Что нужно сделать, чтобы сделать конструктор закрытым в классе?] (Http://stackoverflow.com/questions/2062560/what-is-the-use-of-making-constructor-private-in -a-class) – paulsm4

ответ

2

Да, вот как синглтоны реализованы на C++. Класс также обычно имеет метод static, через который вы можете вернуть экземпляр.

+1

Да, я это знаю. Я сомневаюсь в наследовании. Огромное спасибо. –

+0

Обычно они также имеют свой конструктор копирования, оператор присваивания и деструктор, объявленные как частные. Большинство синглтонов в C++ я видел только возврат ссылки или указатель на класс. –

+0

@vdn да, такой же предмет. Почему бы не работать? –