Discussão:Singleton

O conteúdo da página não é suportado noutras línguas.
Adicionar tópico
Origem: Wikipédia, a enciclopédia livre.
Último comentário: 18 de novembro de 2011 de Luís Felipe Braga no tópico Reversão

Não compreendi, na versão anterior, a implementação em C++. Na verdade eu acredito que ela não funcionaria pois, aparentemente, o objeto instance (MyClass) não guardaria informação útil pois a atribuição *instance = 0 dentro da função getInstance() esta errada...

Abaixo segue o código, que na minha opinião, está de acordo com a intenção do Singleton:


Em C++[editar código-fonte]

 class MyClass
 {
    private:
       // atributo estático da "instância única"
       static MyClass *instance = 0; //Coloquei o ponteiro como um atributo de classe...
       //construtor privado, não pode ser utilizado fora da classe 
       MyClass() {}
 
    public:
       // Função-membro que retorna sempre a mesma instância do objeto
       static MyClass& getInstance()
       {
          /* static MyClass *instance = 0; ---> ERRO! Não sei nem se compila!!!! */
          if (!instance) instance = new MyClass();
          return *instance;
       }
 };

--Luiz Le Roy (discussão) 21h14min de 11 de março de 2011 (UTC)Responder

Reversão[editar código-fonte]

Reverti pois usuário copiou textos de [gilmarborba.com.br/?p=478]. Luís Felipe Braga Msg 01h18min de 18 de novembro de 2011 (UTC)Responder