함수 오버로딩은 같은 이름의 함수를 중복하여 정의하는 것을 의미한다
함수 이름은 같아도 매개변수의 형태와 개수에 따라 함수의 기능이 달라진다.
이는 다형성에 해당
#include <iostream>
#include <string>
using namespace std;
void func(int, int); // func#int-int
void func(char); // func#char
// 함수 이름은 같지만 매개변수에 따라 다른 기능을 할 수 있음
int countDigit(int num) {
int cnt = 0;
if (num == 0)
return 1;
while (num) {
num /= 10;
cnt++;
}
return cnt;
}
int countDigit(string str) {
return countDigit(stoi(str));
}
int main() {
cout << countDigit(12345) << endl;
cout << countDigit("123456") << endl;
return 0;
}
5
6
함수 이름은 같지만 매개변수에 따라 결과가 5와 6으로 나뉘었다.