본문 바로가기
Programming/C++

(C++) 함수 오버로딩

by GuYou 2020. 4. 21.

함수를 사용하며 같은 이름인 경우가 있다.

 


   

int Func(int num)
{
     num++;
     return num;
}

int Func(int a, int b)
{
     return a+b;
}

 

int main(void)
{
     Func(20);
     Func(30,40);
     return 0;
}

 


위의 함수 이름은 동일하지만 함수 호출 시 전달되는 인자를 통해서 호출하고자 하는 함수의 구분이 가능하기 때문에 매개변수의 선언 현태가 다르다면, 동일한 이름의 함수 정의를 할 수 있다.

 

그렇기 때문에

'Func(20)'은 매개변수가 하나인 'int Func(int num)' 함수를 사용하고

'Func(30,40)'은 매개변수가 두 개인 'int Func(int a, int b) '함수를 사용한다.

 

 

 

C++은 함수의 이름매개변수의 선언을 보고 함수를 찾지만

 

C는 함수의 이름만을 가지고 찾기에 함수 오버 로딩을 사용할 수 없다.