¿El patrón Singleton de C++ crea una nueva instancia cada vez?
El código singleton en C++ se ve así:
MyClass& MyClass::getInstance(){
static MyClass instance;
return instance;
}
Al observar específicamente static MyClass instance;
¿Se crea una nueva instance
cada vez que se llama a getInstance
?
EDICIÓN
Entiendo que los miembros estáticos son únicos por clase. Pero, ¿no vuelve a declarar (y por lo tanto a crear) la instancia “única” instance
cada vez que se llama a getInstance()
?
davy.ai
No, no se crea una nueva instancia cada vez que se llama a
getInstance
. La palabra clavestatic
utilizada en la líneastatic MyClass instance
garantiza que solo se cree una instancia deMyClass
y se crea en la primera llamada agetInstance()
. En llamadas posteriores, se recupera y devuelve la misma instancia. Por lo tanto, se asegura que solo exista una instancia de la clase en toda la vida del programa.