Статическая локальная переменная, например, self
после инициализации (один первый проход через функцию getInstance), сохраняется в течение всей продолжительности программы, если явно не удалена.Поэтому вполне безопасно вернуть ссылку на self
.
. Обратите внимание, что это getInstance
, что является статическим в объявлении функции.Спецификаторы класса хранения недопустимы в типах возвращаемых функций.
Я бы предложил вам использовать Однотипный шаблон проектирования , если, конечно, не настоятельно рекомендуется использовать Singleton