
C++은 오버로드 함수를 호출할 때, 가장 적합한 함수를 선택하는 과정을 '함수 오버로딩'이라고 합니다.
오버로드 함수를 호출할 때, 컴파일러는 함수의 매개변수 타입, 개수, 순서를 고려하여 가장 적합한 함수를 선택합니다.
만약 여러 개의 오버로드 함수가 있으면, 컴파일러는 다음과 같은 순서로 호출됩니다.
1. 매개변수 타입을 비교합니다. 매개변수 타입이 가장 상위 타입인 함수를 선택합니다.
2. 매개변수 개수를 비교합니다. 매개변수 개수가 가장 적은 함수를 선택합니다.
3. 매개변수 순서를 비교합니다. 매개변수 순서가 가장 적합한 함수를 선택합니다.
예를 들어, 다음과 같은 오버로드 함수가 있다고 가정해 보겠습니다.
#hostingforum.kr
cpp
void print(int a) { cout << "int: " << a << endl; }
void print(double a) { cout << "double: " << a << endl; }
void print(string a) { cout << "string: " << a << endl; }
이 경우, 다음 호출은 다음과 같이 호출됩니다.
#hostingforum.kr
cpp
print(10); // int: 10
print(10.5); // double: 10.5
print("hello"); // string: hello
오버로드 함수를 호출할 때, 컴파일러는 매개변수 타입, 개수, 순서를 고려하여 가장 적합한 함수를 선택합니다.
2025-04-08 05:38