Language/C++
[C++] 함수 오버로딩 (Function Overloading)
bugwasd
2015. 11. 28. 17:35
기존 C 컴파일러에서는 함수의 이름으로만 함수를 찾기 때문에 동일한 이름의 함수 정의는 불가능 했다.
하지만 C++ 컴파일러에서는 [함수의 이름 + 매개 변수의 정보]로 호출하고자 하는 함수를 찾기 때문에 함수의 이름이 같아도 매개변수의 타입이나 개수가 다르다면 함수명 중복을 허용한다.
이를 함수 오버로딩(Function Overloading) 이라 한다.
즉 함수 오버로딩이란 같은 이름의 함수를 매개변수의 타입이나 개수를 다르게 하여 여러개 정의하는 것이다.
다음은 함수 오버로딩의 예이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | void func() { cout << " function(void) " << endl; } void func(int a, int b) { cout << " function(int a, int b) " << endl; } void func(char c) { cout << " function(char c) " << endl; } |
위와 같이 같은 이름의 함수를 여러개 정의 할 수 있다.
주의할것은 함수의 이름과 매개 변수의 정보가 같고 리턴타입만 다른 함수는 오버로딩되지 않는다.