728x90
많은 함수들이 인수를 받아서 처리를 합니다.
이때, 인수는 함수를 정의할 때 어떤 타입인지 알려줘야 합니다.
그래서 인수에 맞는 타입만 전달될 수 있죠.
그런데 만약 정수타입에 소수를 넣고 싶거나 아니면 문자열을 넣고 싶을 때도 있을 수 있습니다.
그러면 함수는 동작하지 않을 텐데 이렇게 동일한 처리를 다른 함수를 써야 할 때는 어떻게 해야 할까요?
함수 오버로드
함수 이름은 같지만 인수의 개수나 인수 타입이 다른 함수를 정의하는 것을 말합니다.
장점
1. 함수 이름이 같고 인수의 타입과 개수가 같은 함수를 자동으로 호출해 준다.
2. 같은 처리를 하는 함수를 하나의 이름으로 호출할 수 있도록 해서 코드의 가독성을 높여준다.
주의할 점
컴퓨터가 함수의 이름과 인수의 타입, 개수가 같으면서, 리턴값만 다른 함수는 처리를 할 수 없기 때문에, 함수의 오버로드를 하기 위해서 아래의 2가지 중 하나는 지켜야 합니다.
1. 인수의 개수가 다르다.
2. 인수의 타입이 다르다.
이렇게 하면 대입되는 값에 따라 맞는 함수를 호출해서 사용할 수 있습니다.
그런데 인수가 늘어날수록 타입이 다르면 정의해야 할 함수가 많아져서 비효율적인건 아닌가?
이럴때를 대비해서 함수의 템플릿이라는 기능이 있습니다.
이것으로 1칠판 설명 마치겠습니다.
728x90
'C++' 카테고리의 다른 글
[8] 기본인수 (0) | 2021.04.29 |
---|---|
[7] 함수 템플릿 (0) | 2021.04.28 |
[5] 인라인 함수 (0) | 2021.04.28 |
[4] 형 변환 (0) | 2021.04.28 |
[3] 입력과 출력 (0) | 2021.04.28 |