Exercícios Resolvidos de Membros Públicos e Privados

Ver Teoria

Enunciado

Um aluno que está aprendendo C++ criou dois arquivos .cpp na mesma pasta e escreveu os seguintes códigos em cada um deles:

Ao tentar rodar o segundo código, o aluno foi surpreendido com a mensagem de um erro. Sabendo que o arquivo com o primeiro código se chama gato.cpp, explique qual foi o erro do aluno e como você o consertaria.

Passo 1

Eai, tudo beleza?

Nessa questão devemos encontrar o erro do código que nos foi apresentado. Para isso, é necessário que entendamos o que está escrito nesses códigos.

No primeiro código, a classe gato é criada e é passado para ela um atributo f a l a , que recebe uma string “miau”, e um método m i a r , que imprime na tela o valor guardado no atributo f a l a .

No segundo código, é incluído o código do primeiro. Dentro da função m a i n , é instanciado um objeto da classe g a t o com o nome g a r f i e l d e, logo em seguida, é chamado o método m i a r e logo em seguida é encerrada a função m a i n .

Passo 2

É importante que direcionemos a nossa atenção para a tentativa de acesso ao método m i a r na linha 7 do segundo código. Para que fosse possível acessarmos esse método, ele precisa ser público, no entanto, no primeiro código, não é especificado quais membros são públicos e quais são privados.

Quando isso não é especificado, no C++, é admitido, por convenção, que esses membros são do tipo privado, o que explica o motivo do erro que ocorre ao tentar executar o segundo código.

Passo 3

Para consertarmos esse erro, basta explicitarmos quais membros devem ser privados e públicos. No caso desse código, seria suficiente para consertar o erro deixarmos o atributo privado e o método público.

Resposta

O segundo código está tentando acessar um membro privado do primeiro código. Para consertar isso, é preciso tornar esse membro público.