Если я использую одноэлементный шаблон (да, я знаю - они обычно плохие)... и у меня была такая функция экземпляра:
MySingleton* Instance() {
static MySingleton instance;
return &instance;
}
какой класс хранения instance
?
Я читаю "Программирование с потоками POSIX" Дэвида Р. Бутенхофа и наткнулся на текст, в котором говорилось:
В большинстве случаев вы, вероятно, будете объявлять условные переменные, используя внешний или статический класс хранения в области файла, то есть вне какой-либо функции. У них должен быть обычный (внешний) класс хранения, если они используются другими файлами, или статический класс хранения, если они используются только внутри файла, в котором объявлена переменная.
Поскольку этот статический объект находится внутри функции, он автоматический? или класс отличается из-за статического ключевого слова?
Если бы я переместил переменную «экземпляр» в статическую и глобальную (не в какую-либо функцию) в своем файле, мог бы я по-прежнему ссылаться на нее в другом файле или это не сработало бы?