Disciplina: TI - Desenvolvimento de Sistemas
Banca: CESPE / CEBRASPE
Orgão: CENSIPAM
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.