Exercícios Resolvidos de Sobrecarga de operadores

Ver Teoria

Enunciado

Crie uma classe que represente uma pessoa, e sobrecarregue o c o u t ≪ para que as informações de um objeto da classe sejam impressas.

Passo 1

E aí, beleza?

A questão pede pra gente desenvolver uma classe com um c o u t ≪ sobrecarregado. Esse operador é baseado na classe padrão o s t r e a m , e por isso a sobrecarga dele é um pouco diferente, como vamos ver.

Mas vamos começar escrevendo o cabeçalho. Vamos inserir a biblioteca s t r i n g para nos ajudar.

Passo 2

Vamos desenvolver a classe P e s s o a .

Em escopo privado vamos declarar três atributos básicos n o m e , i d a d e e s a l a r i o .

Para inicializar os atributos privados vamos desenvolver um método construtor. Lembre-se que o construtor é um método sem tipo com o mesmo nome da classe. O construtor vai receber como parâmetro os valores dos atributos.

Vamos desenvolver um método t e x t o P e s s o a ( ) que imprime os atributos da classe. Esse método é útil pois será usado como parte da sobrecarga do operador.

Passo 3

O c o u t é um objeto da classe o s t r e a m , e por isso o operador deve levar isto em consideração.

O processo da sobrecarga é:

o s t r e a m &   o p e r a t o r ≪ ( o s t r e a m   & S a i d a ,   C l a s s e   O b j e t o )

No nosso caso, a classe é P e s s o a e o objeto vamos chamar de p .

Dentro do método vamos nós escrevemos todos os c o u t que queremos que sejam executados quando a sobrecarga for utilizada.

Porém, a gente foi esperto e já escreveu tudo isso dentro do método t e x t o P e s s o a , então é só executar esse método dentro da função de sobrecarga:

E pronto! Sobrecarga concluída.

Passo 4

Agora vamos testar o código

Criamos um objeto da classe P e s s o a chamado p 1 e usamos o construtor para inicializar o objeto.

Depois executamos o c o u t diretamente no objeto p 1

Rodando o código o resultado é:

E é isso! Questão concluída.

Resposta