Sobrecarga de Métodos em C++

C++Beginner
Pratique Agora

Introdução

Neste laboratório, aprenderemos como demonstrar o conceito de Method Overloading (Sobrecarga de Métodos) na linguagem de programação C++. Method Overloading é um conceito onde podemos ter múltiplos métodos ou funções com o mesmo nome em uma classe, mas com diferentes parâmetros. O método apropriado é chamado com base no número e tipos de parâmetros passados durante a chamada do método.

Criar um arquivo C++

Primeiramente, criamos um novo arquivo C++ chamado main.cpp no diretório ~/project usando o seguinte comando:

touch ~/project/main.cpp

Escrever o código

Criaremos uma classe chamada shape (forma) e definiremos dois métodos chamados area(), mas com diferentes números de parâmetros. O método input() receberá a entrada do usuário para definir os valores das variáveis membro l, b e s. Em seguida, definiremos o método main() para acessar os membros da classe shape de fora da classe.

#include <iostream>

using namespace std;

class shape {

    //declaring member variables
    public:
        int l, b, s;

    //defining member functions or methods
    public:
        void input() {
            cout << "Enter the length of each side of the Square: \n";
            cin >> s;
            cout << "\n";
            cout << "Enter the length and breadth of the Rectangle: \n";
            cin >> l >> b;
            cout << "\n";
        }

    //Demonstrating Method Overloading
    public:
        void area(int side) {
            cout << "Area of Square = " << side * side << endl;
        }

        void area(int length, int breadth) {
            cout << "Area of Rectangle = " << length * breadth << endl;
        }
};

int main() {
    cout << "\n\nWelcome to LabEx :-)\n\n\n";
    cout << " =====  Program to demonstrate Method Overloading in a Class, in CPP  ===== \n\n";

    //Declaring class object to access class members from outside the class
    shape sh;

    cout << "\nCalling the input() function to take the values from the user\n";
    sh.input();

    cout << "\nCalling the area(int) function to calculate the area of the Square\n";
    sh.area(sh.s);

    cout << "\nCalling the area(int,int) function to calculate the area of the Rectangle\n";
    sh.area(sh.l, sh.b);

    cout << "\nExiting the main() method\n\n\n";

    return 0;
}

Compilar e executar o código

Agora, compilaremos e executaremos o código usando o seguinte comando:

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

Compreender a saída

A saída do programa será a seguinte:

Welcome to LabEx :-)


 =====  Program to demonstrate Method Overloading in a Class, in CPP  =====

Calling the input() function to take the values from the user
Enter the length of each side of the Square:
4

Enter the length and breadth of the Rectangle:
5
6


Calling the area(int) function to calculate the area of the Square
Area of Square = 16

Calling the area(int,int) function to calculate the area of the Rectangle
Area of Rectangle = 30

Exiting the main() method

Aqui, podemos ver que o método input() é chamado para aceitar a entrada do usuário. O método area() com um parâmetro é então chamado para calcular a área de um quadrado, e o método area() com dois parâmetros é chamado para calcular a área de um retângulo.

Resumo

Neste laboratório, aprendemos como usar o conceito de method overloading (sobrecarga de métodos) na linguagem de programação C++. Criamos um programa que define uma classe chamada shape com dois métodos chamados area(), mas com diferentes números de parâmetros, que foram sobrecarregados. O usuário insere o comprimento e a largura de um retângulo e o comprimento de um lado de um quadrado. Usamos os métodos sobrecarregados para calcular as áreas de ambas as formas.