Pular para o conteúdo principal

Questão de Engenharia de Software — Orientação a Objetos — FGV 2024

Engenharia de SoftwareOrientação a Objetos
Código
fg085528
Banca
FGV
Órgão
INPE
Ano
2024
Nível
Superior
Cargo
Tecnologista Júnior I - Desenvolvimento de Software para Operação de Satélites
Uma linguagem de programação Orientada a Objetos deve prover suporte aos principais fundamentos do desenvolvimento Orientação a Objetos. Entretanto, cada linguagem apresenta as suas especificidades e formas de implementar esses fundamentos.Sobre a Linguagem C++, analise as afirmativas a seguir.I. Um ponteiro this é um ponteiro para um objeto da própria classe e tem como valor o endereço do objeto ao qual se refere.II. Quando internamente a uma ClasseA, define-se outra ClasseB como Friend, significa que a ClasseA está permitindo que a ClasseB acesse seus membros privados e protegidos.III. A linguagem C++ permite herança múltipla.Está correto o que se afirma em
  1. AI, apenas.
  2. BI e II, apenas.
  3. CI e III, apenas.
  4. DII e III, apenas.
  5. EI, II e III.
Revelar gabarito e comentário

GabaritoE — I, II e III.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

C++: Fundamentos de Orientação a Objetos

Gabarito: letra E – as três afirmativas estão corretas. O ponteiro this aponta para o próprio objeto (I), a declaração friend concede acesso a membros privados/protegidos (II) e C++ suporta herança múltipla (III).

A questão testa conhecimentos específicos da linguagem C++ sobre três tópicos fundamentais da POO.

Afirmativa

Descrição

Correção

Justificativa

I

Ponteiro this aponta para o objeto da própria classe, contendo seu endereço

✅ Correta

Em C++, this é um ponteiro implícito em métodos não estáticos, do tipo Classe* const, que armazena o endereço do objeto atual

II

ClasseB declarada como friend em ClasseA acessa membros privados e protegidos de ClasseA

✅ Correta

A declaração friend quebra o encapsulamento seletivamente, permitindo acesso total aos membros privados e protegidos da classe que a declara

III

C++ permite herança múltipla

✅ Correta

Diferente de Java e C#, C++ suporta herança múltipla diretamente, podendo usar herança virtual para resolver ambiguidades como o problema do diamante

C++: POO
  • 1Ponteiro this
    • Aponta para o próprio objeto
    • Disponível em métodos não estáticos
  • 2Friend
    • Acesso a membros privados/protegidos
    • Quebra encapsulamento seletivo
  • 3Herança múltipla
    • Herda de mais de uma classe base
    • Problema do diamante → virtual
LEVEL · soulevel.com.br

Item I — ✅ Correto

O ponteiro this é um ponteiro implícito disponível em métodos não estáticos da classe. Ele armazena o endereço do objeto atual, permitindo que o método acesse os membros daquele objeto. Em C++, this é um prvalue (anteriormente um lvalue) e seu tipo é Classe* const.

Item II — ✅ Correto

Uma classe ClasseB declarada como friend dentro de ClasseA tem permissão para acessar todos os membros privados e protegidos de ClasseA. A declaração friend quebra o encapsulamento de forma seletiva e é comumente usada para sobrecarga de operadores ou quando duas classes precisam de cooperação íntima.

Item III — ✅ Correto

C++ permite herança múltipla, onde uma classe pode herdar de mais de uma classe base. Diferente de Java e C# (que usam interfaces), C++ implementa herança múltipla diretamente, podendo causar ambiguidades (ex.: problema do diamante) que a linguagem resolve com herança virtual.

Portanto, os itens I, II e III estão corretos, correspondendo à alternativa E.

Link permanente: /questoes/fg085528