728x90
반응형
함수 오버로딩(Function Overloading)
-
함수 오버로딩
C 언어에서는 두 함수를 정의하고 선언하는데 함수의 이름이 같으면 아무리 함수의 내용이 다르다고 하더라도 허용하지 않았다. 위의 예제에서 sum을 호출할 때, 어떤 함수의 정의를 타겟으로 호출했는지 알 수 있다. 이렇게 호출되는 함수 명은 같지만 어떤 함수 정의를 타겟으로 하였는지 알 수 있었던 이유는 함수 호출의 인자와 함수 선언의 매개 변수 정보를 통해서 호출하고자 하는 함수를 구분할 수 있다.
즉, 함수 호출 시 전달되는 인자를 통해 호출되고자 하는 함수의 구분이 가능하기 때문에 C++에서는 함수의 정의에서 매개 변수의 선언 형태가 다르다면 동일한 이름의 함수 정의를 허용할 수 있다.
이를 함수 오버로딩이라 한다.
함수 오버로딩 시 필요한 정보 : 함수 이름 + 함수의 매개변수 + const 여부
함수의 이름은 같아야 함수 오버로딩이 적용되고, 함수의 매개변수의 경우 매개 변수들의 타입 혹은 개수 정보가 달라야 오버로딩이 가능하다. 그리고 const 여부의 경우는 추후 내용 기록한다. 중요한 것은 반환 타입은 오버로딩에 필요한 정보가 아니므로 반환 타입이 다르다고 해서 오버로딩이 적용되지 않는다.
728x90
반응형
'컴퓨터 언어 정리 > C++ 언어' 카테고리의 다른 글
06 이름 공간(namespace) (0) | 2020.09.08 |
---|---|
05 인라인 함수(inline function) (0) | 2020.09.07 |
04 디폴트 매개변수(Default Parameter) (0) | 2020.09.07 |
02 Bool 자료형 (0) | 2020.09.06 |
01 C++언어의 첫 기본 예제 (0) | 2020.09.06 |