Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Sobrecarga de função C++

Sobrecarga de função C++


Neste tutorial, aprenderemos sobre a sobrecarga de funções em C++ com exemplos.

Em C++, duas funções podem ter o mesmo nome se o número e/ou tipo de argumentos passados ​​forem diferentes.

Essas funções com o mesmo nome, mas argumentos diferentes, são conhecidas como funções sobrecarregadas. Por exemplo:

// same name different arguments
int test() { }
int test(int a) { }
float test(double a) { }
int test(int a, double b) { }

Aqui, todas as 4 funções são funções sobrecarregadas.

Observe que os tipos de retorno de todas essas 4 funções não são os mesmos. Funções sobrecarregadas podem ou não ter diferentes tipos de retorno, mas devem ter argumentos diferentes. Por exemplo,
// Error code
int test(int a) { }
double test(int b){ }

Aqui, ambas as funções têm o mesmo nome, o mesmo tipo e o mesmo número de argumentos. Portanto, o compilador lançará um erro.

Exemplo 1:sobrecarga usando diferentes tipos de parâmetro

// Program to compute absolute value
// Works for both int and float

#include <iostream>
using namespace std;

// function with float type parameter
float absolute(float var){
    if (var < 0.0)
        var = -var;
    return var;
}

// function with int type parameter
int absolute(int var) {
     if (var < 0)
         var = -var;
    return var;
}

int main() {
    
    // call function with int type parameter
    cout << "Absolute value of -5 = " << absolute(-5) << endl;

    // call function with float type parameter
    cout << "Absolute value of 5.5 = " << absolute(5.5f) << endl;
    return 0;
}

Saída
Absolute value of -5 = 5
Absolute value of 5.5 = 5.5

Neste programa, sobrecarregamos o absolute() função. Com base no tipo de parâmetro passado durante a chamada da função, a função correspondente é chamada.

Exemplo 2:sobrecarga usando um número diferente de parâmetros

#include <iostream>
using namespace std;

// function with 2 parameters
void display(int var1, double var2) {
    cout << "Integer number: " << var1;
    cout << " and double number: " << var2 << endl;
}

// function with double type single parameter
void display(double var) {
    cout << "Double number: " << var << endl;
}

// function with int type single parameter
void display(int var) {
    cout << "Integer number: " << var << endl;
}

int main() {

    int a = 5;
    double b = 5.5;

    // call function with int type parameter
    display(a);

    // call function with double type parameter
    display(b);

    // call function with 2 parameters
    display(a, b);

    return 0;
}

Saída
Integer number: 5
Float number: 5.5
Integer number: 5 and double number: 5.5



Aqui, o display() A função é chamada três vezes com argumentos diferentes. Dependendo do número e tipo de argumentos passados, o display() correspondente função é chamada.

O tipo de retorno de todas essas funções é o mesmo, mas esse não precisa ser o caso de sobrecarga de função.


Observação: Em C++, muitas funções de biblioteca padrão estão sobrecarregadas. Por exemplo, o sqrt() função pode levar double , float , int, etc. como parâmetros. Isso é possível porque o sqrt() função está sobrecarregada em C++.

Linguagem C

  1. Sobrecarga do método C#
  2. Sobrecarga do construtor C#
  3. Operadores C++
  4. Comentários C++
  5. Passando array para uma função na programação C++
  6. Função de amigo C++ e classes de amigo
  7. Passar arrays para uma função em C
  8. Sobrecarga do operador C++ com exemplos
  9. Funções C++ com exemplos de programas
  10. C - Funções