Согласно Википедии «синглтон» - это шаблон, ограничивающий создание экземпляра класса одним единственным экземпляром. Он описан в книге о паттернах проектирования «Банды четырёх», посвещенной способам решения повторяющихся проблем в объектно-ориентированном программировании. Паттерн используется когда в системе необходимо обеспечить существование ровно одного объекта. Шаблон «синглтон» позволяет: Пусть «синглтон» нужен для того чтобы гарантировать наличие только одного объекта Logger, записывающего сообщения в std::cout. class Logger { public:
virtual void Log(const std::string& message) {
std::cout << message << std::endl;
} }; Одна из реализаций «синглтона» может выглядеть следующим образом: Для того чтобы гарантировать существование единственности объекта класса LoggerSingleton помечаем конструктор копирования и оператор присваивания удаленными, а конструктор по умолчанию делаем приватным. Таким образом, объект LoggerSingleton можно создать лишь внутри статического метода Get