Operador de adição de sobrecarga C ++

Operador de adição de sobrecarga C ++

Você pode ter ouvido o termo "sobrecarga" na programação. Mas, o conceito de sobrecarga também pode ser usado para operadores na programação. A sobrecarga do operador funciona apenas para os métodos definidos pelo usuário na programação C ++. Os operadores são especificados para executar apenas as operações aritméticas. Enquanto a sobrecarga de operadores pode nos permitir fazer algumas tarefas diferentes com os operadores i.e., concatenação de string e muito mais.

Enquanto isso, usaremos apenas a sobrecarga do operador de adição em nossos exemplos de código C ++ neste artigo hoje. Portanto, verifique se você tem um compilador C ++ configurado em seu sistema, pois estamos trabalhando no Ubuntu 20.04 Sistema.

Exemplo 1:

Após o login da sua distribuição Linux, tente abrir o aplicativo de console na barra de atividades. Isso também pode ser feito pelo uso da tecla "Ctrl+Alt+T" na área de trabalho do Linux. Agora, o aplicativo do console é lançado e você precisa gerar um novo arquivo C ++. Este arquivo será usado para fazer código nele. Assim, a instrução de toque será útil para criar um.

Depois disso, o arquivo precisa ser aberto em algum editor. Use o editor "GNU Nano" que já está embutido no Ubuntu 20.04 e pode ser usado com a palavra -chave nano junto com o título do documento C ++. Ambas as consultas foram demonstradas a partir da imagem de instantâneo em anexo.

Temos usado o operador unário "++" nesta ilustração. A primeira coisa a fazer é adicionar o arquivo de cabeçalho com a palavra -chave "#include". Adicione a linha “Usando o namespace std” para sintaxe padrão. Uma classe fictícia foi declarada tendo o nome "teste". A classe contém a inicialização das variáveis ​​do tipo inteiro privado i.e., num. Foi definido o construtor do tipo público do teste de classe que está inicializando o valor da variável "num" a 5, pois os construtores são usados ​​para inicializações diretas.

O operador "++" foi sobrecarregado com um operador vazio embutido enquanto usado como prefixo. Incrementa o valor da variável "num" e substitui o último valor pelo novo. A sobrecarga foi feita aqui.

Na próxima linha, inicializamos uma função definida pelo usuário chamada "show" usando a instrução Cout padrão. O cout está exibindo o valor incrementado da variável "num" por sobrecarga do operador de adição usando o método prefixo. A execução começou a partir do método Main (), onde criamos um objeto do teste da classe fictícia como "t". A criação do objeto "T" levará à execução do construtor "test ()" e a inicialização da variável "NUM" Valor I.e., 5, a linha “++ t” está aumentando o valor do objeto para chamar a função Operator ++ () para sobrecarregar o operador de adição. Após o sobrecarga do operador de adição, a função SHOW () foi chamada para mostrar o valor sobrecarregado no shell. A função principal termina aqui, bem como o código do programa.

O compilador G ++ padrão será usado até agora para compilar a “sobrecarga.Arquivo CC "C ++ e torne-o livre de erros. A compilação é bem -sucedida e não temos erros ou mensagens em troca. A execução de tais códigos de programação não requer pacotes especiais, mas o “./a.fora ”comandos. Usamos no nosso shell ubuntu e obtivemos o resultado 6 como sobrecarga do operador de adição aplicado na variável "num". É assim que a sobrecarga do operador de adição pode ser alcançada no C ++ usando o método de prefixo de sobrecarga.

Exemplo 2:

Vamos começar com outro exemplo para sobrecarregar o operador de adição no código de programação C ++ enquanto estiver usando a distribuição Linux I.e. Ubuntu 20.04 Sistema. Assim, atualizamos o documento chamado “Sobrecarga.CC ”simplesmente lançando -o dentro do editor. Sua primeira tarefa é adicionar o cabeçalho do fluxo "IO" na primeira linha de código C ++ dentro da sobrecarga.Arquivo CC ”. Depois disso, use o espaço para nome "std" como padrão. Sem ele, nosso código não usa utilidade. Estamos declarando um "teste" da classe fictícia como fizemos antes na ilustração acima. Esta classe contém dois membros de dados privados eu.e., "R" e "eu". Ambas as variáveis ​​são do tipo inteiro. O "R" é usado para valor real enquanto o "eu" será usado como o valor imaginário.

Após a inicialização dos membros de dados, declaramos funções do tipo público na classe. A primeira função é a função construtora da classe I.e. "Teste". Este construtor está inicializando a variável "r" e "i" com o valor inicial de "0", pois os construtores são usados ​​para a inicialização direta. Outra função de sobrecarga do operador de classe é usada como "operador de teste" com o sinal "+" entre o nome e o parâmetro.

Essa função de sobrecarga tem tomado o tipo constante de classe "Teste" "Objeto" como um argumento paramétrico. Este valor do objeto seria armazenado na variável de objeto do tipo de classe "val". Esta variável de tipo de objeto "OBJ" está sendo usada aqui para sobrecarregar o operador de adição para adicionar os valores variáveis ​​antigos aos novos atribuídos pelos objetos I.e., r e eu.

A função de sobrecarga do operador será chamada quando os objetos serão concatenados na função principal e o valor resultante será retornado à função principal () para armazenar no novo objeto.

Aqui vem o método definido pelo usuário chamado "show ()". Ele será usado para exibir o valor real e o valor da variável imaginária com "eu" no começo para mostrar que é imaginário, enquanto não é real. A declaração cout é usada como a declaração de saída padrão aqui até agora. A definição e a declaração da classe serão fechadas aqui após a criação de seus membros e funções de dados i.e., Função do construtor, função de sobrecarga, função definida pelo usuário.

A função principal () foi codificada no arquivo. A implementação e execução reais iniciadas daqui. Os objetos de "teste" da classe foram criados i.e., T1 e T2. Com a primeira criação de objetos, a função do construtor "teste" é chamada e executada. Os valores foram passados ​​para os construtores e salvos para as variáveis ​​"r" e "eu". O segundo objeto faz o mesmo e novos valores foram armazenados no novo endereço de memória. Outro objeto "T3" do teste de classe foi criado para sobrecarregar o operador de adição entre os dois objetos criados anteriormente.e., T1 e T2.

Com a criação deste objeto T3, a função de sobrecarga do operador da classe “teste” para o operador de adição foi executada. Os primeiros valores de objeto foram resumidos com os valores do segundo objeto usando a sobrecarga do operador de "adição". Aqui, você precisa entender que o primeiro valor do primeiro objeto foi resumido com o primeiro valor de um segundo objeto e vice -versa.

O código inteiro geral de C ++ para a sobrecarga do operador de adição foi mostrado na imagem abaixo. Salve seu código com Ctrl+S para refletir as atualizações no shell.

Em troca, temos a saída mostrando o número real e os números imaginários resumidos pela sobrecarga do operador de adição.

Conclusão

Neste artigo, discutimos o uso da sobrecarga do operador de adição na programação C ++. Usamos os conceitos de construtores, sobrecarregando as funções do operador, o método principal e os objetos para fazê -lo entender bem. Esperamos que este guia seja útil.