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 두 가지이기 때문에 구별이 가능하였습니다. 이러한 식으로 구별 가능한 경우 동일 함수명도 허용합니다.
매개 변수의 자료형 또는 개수가 다른 경우 허용하고 있습니다.
단, 함수의 반환형만 다른 경우 허용하지 않습니다.
'C C++ > C언어 기초' 카테고리의 다른 글
C언어의 메모리 구조 (0) | 2022.07.09 |
---|---|
[C++] 함수 매개변수의 디폴트 값 (0) | 2022.07.07 |
[C++] C++ 스타일 입출력 (입력, 출력, 문자열 입력) (0) | 2022.07.06 |
C언어 - 구조체 배열과 포인터 (0) | 2022.05.05 |
C언어 - 구조체란? (구조체 정의, 구조체 변수의 초기화) (0) | 2022.05.05 |
댓글