본문 바로가기

C++

[C++] 함수 오버로딩

함수 오버로딩이란?

함수 호출 시 전달되는 매개변수의 유형이나 갯수는 다르지만, 같은 이름을 공유하는 함수들의 정의를 말한다.

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