함수 오버로딩이란?
함수 호출 시 전달되는 매개변수의 유형이나 갯수는 다르지만, 같은 이름을 공유하는 함수들의 정의를 말한다.
C언어에서는 함수의 이름만 이용하여 찾기 때문에 동일한 이름의 함수가 정의되는 것을 허용하지 않지만, C++에서는 이를 허용하고 있다.
함수 명칭이 동일할 때 함수를 구분하는 기준은 매개변수의 형태와 개수이다.
#include <iostream> using namespace std; void print(char a) { cout << a << endl; } void print(int a) { cout << a << endl; } void print(int a, int b) { cout << a << ", " << b << endl; } int main() { print(1); print('a'); print(2, 3); return 0; }
하지만 매개변수 형태와 개수가 같지만 반환형만 다른 경우에는 아래와 같이 컴파일 오류가 발생한다.
'C++' 카테고리의 다른 글
[C++] 인라인(inline) 함수 (0) | 2019.03.04 |
---|---|
[C++] 매개변수 디폴트 값 (0) | 2019.03.04 |
[C++] 입력 (0) | 2019.02.28 |
[C++] namespace (0) | 2019.02.28 |
[C++] Hello World! 출력 (0) | 2019.02.12 |