English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이름이 같지만 파라미터가 다른 두 개나 더 많은 함수는 오버로드 함수라고 합니다. 이 문서에서는 예제를 통해 함수 오버로드를 이해할 수 있습니다.
함수은 특정 작업을 수행하기 위해 코드를 그룹화하는 코드 슬라이드입니다.
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){}
반환 타입이 다르더라도, 두 함수에 전달된 매개변수의 개수와 데이터 타입이 같다면 이는 오류가 발생합니다.
#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() 함수는 다른 유형이나 개수의 매개변수를 세 번 호출합니다.
모든 이 함수들은 같은 반환 타입을 가지고 있지만, 이는 필수적이지 않습니다.
//프로그램은 절대값을 계산합니다 //정수와 실수 모두에 대해 유효합니다 #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; }