Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Перегрузка функций C++

Перегрузка функции C++

В этом уроке мы узнаем о перегрузке функций в C++ на примерах.

В C++ две функции могут иметь одно и то же имя, если число и/или тип передаваемых аргументов различаются.

Эти функции с одинаковым именем, но разными аргументами называются перегруженными функциями. Например:

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

Здесь все 4 функции являются перегруженными функциями.

Обратите внимание, что возвращаемые типы всех этих четырех функций не совпадают. Перегруженные функции могут иметь или не иметь разные типы возвращаемого значения, но они должны иметь разные аргументы. Например,

// Error code
int test(int a) { }
double test(int b){ }

Здесь обе функции имеют одно и то же имя, один и тот же тип и одинаковое количество аргументов. Следовательно, компилятор выдаст ошибку.

<час>

Пример 1. Перегрузка с использованием разных типов параметров

// 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;
}

Вывод

Absolute value of -5 = 5
Absolute value of 5.5 = 5.5
<рисунок>

В этой программе мы перегружаем absolute() функция. В зависимости от типа параметра, переданного во время вызова функции, вызывается соответствующая функция.

<час>

Пример 2. Перегрузка с использованием разного количества параметров

#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;
}

Вывод

Integer number: 5
Float number: 5.5
Integer number: 5 and double number: 5.5

Здесь display() функция вызывается три раза с разными аргументами. В зависимости от количества и типа переданных аргументов соответствующий display() вызывается функция.

<рисунок>

Тип возвращаемого значения всех этих функций одинаков, но это не обязательно должно быть в случае перегрузки функции.

<час>

Примечание. В C++ многие стандартные библиотечные функции перегружены. Например, sqrt() функция может принимать double , float , int, и т.д. в качестве параметров. Это возможно, потому что sqrt() функция перегружена в C++.


Язык C

  1. Перегрузка метода C#
  2. Перегрузка конструктора C#
  3. Операторы С++
  4. С++ Комментарии
  5. Передача массива в функцию в программировании на C++
  6. Дружественные функции C++ и дружественные классы
  7. Передать массивы функции в C
  8. Перегрузка оператора C++ с примерами
  9. Функции C++ с примерами программ
  10. С - Функции