본문 바로가기
C C++/C언어 기초

[C++] 함수의 오버로딩

by Go! Jake 2022. 7. 7.

C에서는 함수의 명칭이 동일하다면 컴파일이 되지 않습니다. 즉 허용되지 않습니다. C++에서는 이름이 동일하더라도 구별이 가능하다면 같은 명칭의 함수를 사용할 수 있습니다. 이를 '함수의 오버로딩'이라고 합니다.

함수의 오버로딩

C에서 아래 함수 선언은 컴파일 되지 않습니다. 이는 함수 이름이 동일하기 때문입니다.

#include <stdio.h>

int main()
{
	int solution(int a);
	int solution(int b, int c);
	return 0;
}

C++에서는 구별가능하다면 함수의 오버로딩을 지원하고 있습니다.

#include <stdio.h>

int main()
{
	int solution(int a);
	int solution(int b, int c);
	return 0;
}

이 경우는 함수의 인자가 첫 번째 solution 함수는 int a 하나이고, 두 번째 solution 함수는 int b와 int c 두 가지이기 때문에 구별이 가능하였습니다. 이러한 식으로 구별 가능한 경우 동일 함수명도 허용합니다.

 

매개 변수의 자료형 또는 개수가 다른 경우 허용하고 있습니다.

단, 함수의 반환형만 다른 경우 허용하지 않습니다.

댓글