Questão de Engenharia de Software — Orientação a Objetos — FGV 2024
Engenharia de Software›Orientaçã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
AI, apenas.
BI e II, apenas.
CI e III, apenas.
DII e III, apenas.
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.