es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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()?

Tags:  ,

Answer

  1. Avatar for davy.ai

    No, no se crea una nueva instancia cada vez que se llama a getInstance. La palabra clave static utilizada en la línea static MyClass instance garantiza que solo se cree una instancia de MyClass y se crea en la primera llamada a getInstance(). 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.

Comments are closed.