Недавно я столкнулся с реализацией/реализацией шаблона проектирования Singleton для С++. Это выглядело так (я принял это из примера реальной жизни):
// a lot of methods are omitted here
class Singleton
{
public:
static Singleton* getInstance( );
~Singleton( );
private:
Singleton( );
static Singleton* instance;
};
Из этого объявления я могу вывести, что поле экземпляра инициируется в куче. Это означает, что есть выделение памяти. Для меня совершенно непонятно, когда именно память будет освобождена? Или есть ошибка и утечка памяти? Кажется, что в реализации есть проблема.
Мой главный вопрос: как мне его реализовать правильно?