Pink Transparent Star

C++언어

함수 오버로딩 ( Function Overloading)

채유나 2022. 4. 20. 03:12
728x90

함수 오버로딩, 함수 중복는 C언어에선 없는 문법 중 하나이다

.

 

그럼 함수 오버로딩의 정의는 무엇인가??

 - 함수 호출 시 '함수의 이름' 과 '전달되는 인자의 정보'를 참조하여 결정한다.

즉, 동일한 이름의 함수으로 매개변수의 갯수와 자료형이 다른 함수를 말하며 컴파일러가 어떤 함수를 사용할지 결정 한다.

 

왜 C언어에선 함수 오버로딩이 불가능할가?

- C++의 경우 함수이름, 매개변수의 선언을 기준으로 판단하고 호출 함수를 찾는다 반명에 C언어의 경우 함수이름만 이용하여 호출 함수를 찾기 때문에 판단하기 힘들어 함수 오버로딩이 불가능하다. 

 

[ 함수 오버로딩 성립 - 매개변수 자료형만 다름 ]

int MyFunc(char c) {...}
int MyFunc(int c) {...}

[ 함수 오버로딩 성립 - 매개변수 갯수만 다름 ]

int MyFunc(int c) {...}
int MyFunc(int c1, int c2) {...}

[ 함수 오버로딩 불가 - 반환형 차이는 불가능 ] => 컴파일 오류

void MyFunc(int n){...}
int MyFunc(int n){...}

 

많이 물어보는 기술 면접

  함수의 오버로딩과 함수의 오버라이딩이란 무엇인가? 차이는 무엇인가?

 

728x90

'C++언어' 카테고리의 다른 글

디폴트 매개변수( Default Value )  (0) 2022.08.25