Sobrecarga do Operador + em C++

C++Beginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como demonstrar o conceito de sobrecarga do operador + na linguagem de programação C++. A sobrecarga de operadores é um recurso em C++ que permite que um único operador ou símbolo seja usado com diferentes significados, dependendo do contexto em que é usado. Neste laboratório, mostraremos como somar dois objetos Cuboid usando o operador +.

Criar um novo arquivo C++

Crie um novo arquivo C++ chamado main.cpp no diretório ~/project.

cd ~/project
touch main.cpp

Escreva o código para demonstrar a sobrecarga do operador +

Adicione o seguinte código a main.cpp para criar uma classe chamada Cuboid que representa um sólido retangular tridimensional:

#include <iostream>

using namespace std;

//definindo a classe Cuboid para demonstrar o conceito de Sobrecarga do Operador Mais em CPP
class Cuboid {
    //Declarando variáveis membro da classe como públicas para acesso de fora da classe
    public:
        double length; // Comprimento do Cuboid
        double breadth; // Largura do Cuboid
        double height; // Altura do Cuboid

        public:
        double getVolume(void) {
            return length * breadth * height;
        }
        void setLength(double l) {
            length = l;
        }

        void setBreadth(double b) {
            breadth = b;
        }

        void setHeight(double h) {
            height = h;
        }

        // Sobrecarga do operador + para somar dois objetos Cuboid entre si.
        Cuboid operator + (const Cuboid & c) {
            Cuboid cuboid;
            cuboid.length = this -> length + c.length;
            cuboid.breadth = this -> breadth + c.breadth;
            cuboid.height = this -> height + c.height;
            return cuboid;
        }
};

Definir a função principal (main)

Adicione o seguinte código a main.cpp para implementar a função main que cria três objetos Cuboid, define suas dimensões, calcula seus volumes, soma dois dos objetos e imprime as dimensões e o volume do objeto cuboid resultante:

//Definindo o método main para acessar os membros da classe
int main() {

    cout << "\n\nBem-vindo ao LabEx :-)\n\n\n";
    cout << " =====  Programa para demonstrar a Sobrecarga do Operador Mais, em CPP  ===== \n\n";

    //Declarando os objetos da Classe para acessar os membros da classe
    Cuboid c1;
    Cuboid c2;
    Cuboid c3;

    //Para armazenar o volume do Cuboid
    double volume = 0.0;

    // Definindo o comprimento, largura e altura para o primeiro objeto Cuboid: c1
    c1.setLength(3.0);
    c1.setBreadth(4.0);
    c1.setHeight(5.0);

    // Definindo o comprimento, largura e altura para o segundo objeto Cuboid: c2
    c2.setLength(2.0);
    c2.setBreadth(5.0);
    c2.setHeight(8.0);

    // Encontrando o Volume do primeiro Cuboid: c1
    cout << "Chamando o método getVolume() para encontrar o volume do Cuboid c1\n";
    volume = c1.getVolume();
    cout << "Volume do Cuboid c1 é: " << volume << "\n\n\n";

    // Encontrando o Volume do primeiro Cuboid: c1
    cout << "Chamando o método getVolume() para encontrar o volume do Cuboid c2\n";
    volume = c2.getVolume();
    cout << "Volume do Cuboid c2 é: " << volume << "\n\n\n";

    // Somando os dois objetos Cuboid c1 e c2 para formar o terceiro objeto c3:
    c3 = c1 + c2;

    // Imprimindo as dimensões do terceiro Cuboid: c3
    cout << "Comprimento do Cuboid c3 é: " << c3.length << endl;
    cout << "Largura do Cuboid c3 é: " << c3.breadth << endl;
    cout << "Altura do Cuboid c3 é: " << c3.height << endl;

    // Encontrando o Volume do terceiro Cuboid: c3
    cout << "\n\nChamando o método getVolume() para encontrar o volume do Cuboid c3\n";
    volume = c3.getVolume();
    cout << "Volume do Cuboid c3 é: " << volume << endl;
    cout << "\n\n\n";

    return 0;
}

Compilar e executar o código

Use o seguinte comando para compilar e executar o código:

g++ main.cpp -o main && ./main

Você verá a seguinte saída:

Welcome to LabEx :-)


 =====  Program to demonstrate the Plus Operator Overloading, in CPP  =====

Calling the getVolume() method to find the volume of Cuboid c1
Volume of the Cuboid c1 is : 60



Calling the getVolume() method to find the volume of Cuboid c2
Volume of the Cuboid c2 is : 80



Length of the Cuboid c3 is : 5
Breadth of the Cuboid c3 is : 9
Height of the Cuboid c3 is : 13


Calling the getVolume() method to find the volume of Cuboid c3
Volume of the Cuboid c3 is : 585

Resumo

Neste laboratório, você aprendeu como demonstrar o conceito de Sobrecarga do Operador + na linguagem de programação C++. A sobrecarga de operadores é um recurso poderoso e útil do C++ que permite que você use um operador com diferentes significados em diferentes contextos. Ao sobrecarregar o operador +, você pode somar dois objetos Cuboid entre si.