Questão
ID 663575Disciplina: Tecnologia da Informação
Assunto: C e C++
Ano: 2001 Banca: CESPE CEBRASPE - Centro de Seleção e de Promoção de Eventos UnB Órgão: Empresa de Processamento de Dados da Previdência Social
Texto CE-I – questões 26 e 27
O trecho de código abaixo foi desenvolvido utilizando-se a linguagem C++, padrão ANSI/ISO C++. Nesse código, são apresentadas diversas ferramentas úteis no desenvolvimento de componentes de software reutilizável e extensível dentro da filosofia de concepção orientada a objetos.
- template<class T, class U> class A
- {
- ___public:
- ______virtual A<T,U>& operator=(const A<T,U>&) = 0;
- ______virtual bool put(T&,U&) = 0;
- ______virtual const T& get(U&) const = 0;
- ___protected:
- ______virtual void resize(int) = 0;
- ___private:
- ______T *Elements;
- ______U *Index;
- };
- template<class T> class B : public A<T,int>
- {
- ___public:
- ______B(int dim);
- ______A<T,int>& operator=(const A<T,int>&);
- ______bool put(T&, int&);
- ______const T& get(int&) const;
- ______bool put(T&);
- ___protected:
- ______void resize(int);
- };
- void f_main(double &d, int &i)
- {
- ______B<double> b (10);
- ______B<double> c = b; c.put (d, i);
- ______double e = b.get(i);
- _______________c.put(d);
- ______A<double,int> *a = &b; a->put(d,i);
- ________________________a->get(i);
- ________________________a->put (d);
- }
A partir do texto CE-I e com base no padrão ANSI/ISO C++, julgue os itens a seguir, com relação às ferramentas de desenvolvimento orientado a objetos encontradas na linguagem C++.
A definição da interface de uma classe de objetos é fundamental para o sucesso da concepção orientada a objetos na obtenção dos princípios e no respeito aos critérios de modularidade. Nessa definição, diversas primitivas de uma classe podem ser declaradas mascaradas ou escondidas do sistema no qual a classe está inserida. Isso evita que a integridade de uma classe seja violada por objetos alheios. No trecho de código apresentado, observa-se que os atributos "Elements" (l.10) e "Index" (l.11) não podem ser acessados por objetos que estabeleçam relação de clientela com a classe A<T,U>, somente podendo ser acessados de forma direta pelos procedimentos e pelas funções da própria classe A<T,U> e de suas classes herdeiras.