산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
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개의 함수는 모두 오버로드된 함수입니다.

이 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. C++ 연산자
  4. C++ 주석
  5. C++ 프로그래밍에서 함수에 배열 전달
  6. C++ friend 함수 및 friend 클래스
  7. C의 함수에 배열 전달
  8. 예제를 사용한 C++ 연산자 오버로딩
  9. 프로그램 예제가 있는 C++ 함수
  10. C - 기능