Questão 587287

Tecnologia da Informação · 2006

Questão

ID 587287

Disciplina: Tecnologia da Informação

Assunto: Padrões Criacionais

Ano: 2006 Banca: CESPE CEBRASPE - Centro de Seleção e de Promoção de Eventos UnB Órgão: Centro Gestor e Operacional do Sistema de Proteção da Amazônia


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 da questão 587287
Pular para o conteúdo principal