Crie uma classe para os empregados de uma empresa. Eles devem ter os atributos privados e , que devem ser inicializados no momento que o objeto é instanciado.
Sobrecarregue os operadores e para comparar o salário entre dois funcionários.
Passo 1
Vamos lá, galera.
A questão quer que a gente crie uma classe que represente os funcionários. Para inicializar o objeto no momento que é instanciado, vamos precisar criar um construtor.
Mas o ponto principal da questão é que ela pede que a gente sobrecarregue os operadores binários e para comparar o atributo salário.
Mas vamos começar com o cabeçalho: vamos inserir a classe para facilitar nossa vida.
Passo 2
Vamos construir a classe chamada .
Criamos os atributos privados: do tipo , e do tipo
Em seguida, vamos pro contexto público da nossa classe e vamos desenvolver o construtor. Criamos uma função sem tipo com o mesmo nome da classe (), e esta função receberá os parâmetros e (linha 12).
No corpo do construtor, vamos guardar os parâmetros recebidos nos atributos da classe (linhas 13 e 14).
Passo 3
Seguindo em frente, é hora da sobrecarga!
O objetivo é sobrecarregar os operadores e para comparar com o atributo , que é um atributo privado.
Para que os operadores tenham acesso ao atributo privado, o ideal é que eles sejam métodos da função! Então vamos sobrecarregar como função membro, para que a sobrecarga tenha acesso aos membros privados da classe.
Criamos a sobrecarga dentro da classe. A operação que queremos realizar deve retornar ou , então o tipo da sobrecarga é . Em seguida usamos a palavra chave seguida do símbolo .
O operador é binário, e por isso utiliza dois parâmetros. Mas como estamos criando a sobrecarga como função-membro, o primeiro parâmetro, por definição, é um objeto da própria classe . Então só precisamos adicionar um único parâmetro, que será outro objeto da classe
Dentro do método de sobrecarga, vamos comparar o atributo da classe com o atributo do objeto . O resultado dessa comparação é um valor booleano (1 ou 0), que vamos retornar.
Vamos efetuar o mesmo processo com o operador
E isso finaliza a nossa classe!
Passo 4
Mas antes de fechar a questão, vamos testar a nossa classe.
Dentro da vamos instanciar dois objetos, eu criei dois funcionários com nomes e salários aleatorios
E vamos imprimir uma comparação entre esses dois empregados:
O resultado que obtemos é: