Imagem de fundo

A redefinição/definição, a sobrecarga de funções e a...

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.


  1. template<class T, class U> class A
  2. {
  3. ___public:
  4. ______virtual A<T,U>& operator=(const A<T,U>&) = 0;
  5. ______virtual bool put(T&,U&) = 0;
  6. ______virtual const T& get(U&) const = 0;
  7. ___protected:
  8. ______virtual void resize(int) = 0;
  9. ___private:
  10. ______T *Elements;
  11. ______U *Index;
  12. };

  13. template<class T> class B : public A<T,int>
  14. {
  15. ___public:
  16. ______B(int dim);
  17. ______A<T,int>& operator=(const A<T,int>&);
  18. ______bool put(T&, int&);
  19. ______const T& get(int&) const;
  20. ______bool put(T&);
  21. ___protected:
  22. ______void resize(int);
  23. };

  24. void f_main(double &d, int &i)
  25. {
  26. ______B<double> b (10);
  27. ______B<double> c = b; c.put (d, i);

  28. ______double e = b.get(i);
  29. _______________c.put(d);

  30. ______A<double,int> *a = &b; a->put(d,i);
  31. ________________________a->get(i);
  32. ________________________a->put (d);
  33. }


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 redefinição/definição, a sobrecarga de funções e a substituição de funções são mecanismos utilizados em um ambiente orientado a objetos para promover a evolução, a extensão e o reúso eficiente de componentes de software. Porém, no trecho de código mostrado, devido às relações estabelecidas entre as classes A<T,U> e B<T>, não é possível encontrar nenhum uso desses mecanismos.


C

Certo


E

Errado