A classe “CntrAutenticacao” não pode ser instanciada por có...

Próximas questões
Com base no mesmo assunto
Q2759702 Arquitetura de Software

template <class Parametro>

class Singleton {

private:

Singleton();

static Parametro *instancia;

public:

static Parametro *instanciar();

};

template <class Parametro>Parametro*

Singleton<Parametro>::instancia = 0;


template <class Parametro>Parametro*

Singleton<Parametro>::instanciar () {

if (instancia == NULL)

instancia = new Parametro;

return instancia;

}

class CntrAutenticacao:public Controladora {

private:

CntrAutenticacao(){}

public:

void executar();


friend class Singleton<CntrAutenticacao>;

};


Julgue o item subseqüente, com relação ao código acima em C++.

A classe “CntrAutenticacao” não pode ser instanciada por código que não faça parte dos métodos membros da própria classe ou do método “instanciar” da classe “Singleton”; a classe “Singleton” é uma classe “template” que possibilita a implementação do padrão de projeto “Singleton”; há um erro de sintaxe, pois o atributo “instancia” é inicializado fora da classe onde é declarado.

Alternativas