English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ 함수 오버로드

이름이 같지만 파라미터가 다른 두 개나 더 많은 함수는 오버로드 함수라고 합니다. 이 문서에서는 예제를 통해 함수 오버로드를 이해할 수 있습니다.

함수은 특정 작업을 수행하기 위해 코드를 그룹화하는 코드 슬라이드입니다.

C ++프로그래밍에서, 전달된 파라미터의 개수나 타입이 다를 경우, 두 개의 함수가 같은 이름을 가질 수 있습니다.

이러한 다양한 파라미터 개수나 타입(또는 두 가지를 모두 포함한)을 가진 함수는 오버로드 함수라고 합니다. 예를 들어:

int test() {}
int test(int a) {}
float test(double a) {}
int test(int a, double b) {}

여기서 모든4이 함수들은 모두 오버로드 함수입니다.因为这些函数传递给这些函数的参数不同。

주의하십시오, 이4이 함수들은 반환 타입이 다릅니다. 오버로드 함수는 다른 반환 타입을 가질 수 있지만, 다른 매개변수를 가져야 합니다.

// 에러 코드
int test(int a) {}
double test(int b){}

반환 타입이 다르더라도, 두 함수에 전달된 매개변수의 개수와 데이터 타입이 같다면 이는 오류가 발생합니다.

예제1:함수 오버로드

#include <iostream>
using namespace std;
void display(int);
void display(float);
void display(int, float);
int main() {
    int a = 5;
    float b = 5.5;
    display(a);
    display(b);
    display(a, b);
    return 0;
}
void display(int var) {
    cout << "정수: " << var << endl;
}
void display(float var) {
    cout << "실수: " << var << endl;
}
void display(int var1, float var2) {
    cout << "정수: " << var1;
    cout << "   그리고 실수:" << var2;
}

출력 결과

정수: 5
실수: 5.5
정수: 5 및 실수:5.5

여기서 display() 함수는 다른 유형이나 개수의 매개변수를 세 번 호출합니다.

모든 이 함수들은 같은 반환 타입을 가지고 있지만, 이는 필수적이지 않습니다.

예제2:함수 오버로드

//프로그램은 절대값을 계산합니다
//정수와 실수 모두에 대해 유효합니다
#include <iostream>
using namespace std;
int absolute(int);
float absolute(float);
int main() {
    int a = -5;
    float b = 5.5;
    
    cout << "숫자 " << a << "의 절대값= " << absolute(a) << endl;
    cout << "숫자 " << b << "의 절대값= " << absolute(b);
    return 0;
}
int absolute(int var) {
     if (var < 0)
         var = -var;
    return var;
}
float absolute(float var){
    if (var < 0.0)
        var = -var;
    return var;
}

출력 결과

숫자 -5 의 절대값= 5
숫자 5.5 의 절대값= 5.5

위의 예제에서 두 개의 absolute() 함수가 오버로드되었습니다.

이 두 함수는 모두 단일 매개변수를 사용합니다. 그러나 하나의 함수는 integer 매개변수를 사용하며, 다른 하나는 float 매개변수를 사용합니다。

absolute() 함수를 int로 매개변수로 호출할 때, 이 함수를 호출합니다:

int absolute(int var) {
     if (var < 0)
         var = -var;
    return var;
}

absolute() 함수를 float로 매개변수로 호출할 때, 이 함수를 호출합니다:

float absolute(float var){
    if (var < 0.0)
        var = -var;
    return var;
}