▶ 함수 중복 (function overloading)
- 동일한 이름의 함수가 공존
- C++의 다형성
- C언어에서는 불가능
▷ 함수 중복이 가능한 범위
- 보통 함수들 사이
- 클래스의 멤버 함수들 사이
- 상속관계에 있는 기본 클래스와 파생 클래스의 멤버 함수들 사이
▷ 함수 중복 성공 조건
- 중복한 함수들의 이름 동일
- 중복된 함수들의 매개변수 타입이 다르거나 개수가 달라야함
- 리턴 타입은 함수 중복과 무관
예제) 함수 중복 성공 사례
예제) 함수 중복 실패 사례
- 리턴 타입은 달라도됨
- 매개변수 타입과 개수가 모두 같아 함수 중복이 성립되지 않았음
▷ 함수 중복의 편리함
- 동일한 이름을 사용하면 함수 이름을 구분하여 기억할 필요 없고, 함수 호출을 잘못하는 실수를 줄일 수 있음
예제) big() 함수 중복 연습
예제) sum() 함수 중복 연습
▶ 생성자 함수 중복
- 생정자 함수 중복 가능
▷ 목적
- 객체 생성시, 매개 변수를 통해 다양한 형태의 초깃값을 전달하기 위해
▷ string 클래스의 생성자 중복 사례
▶ 소멸자 함수 중복
- 소멸자 함수 중복 불가
- 소멸자는 매개변수를 가지지 않음
- 한 클래스 내에서 소멸자는 오직 하나만 존재
▶ 디폴트 매개변수 (default parameter)
- 매개변수에 값이 넘어오지 않는 경우, 디폴트 값을 받도록 선언된 매개변수
● '매개변수 = 디폴트값' 형태로 선언
▷ 디폴트 매개변수 선언
▷ 디폴트 매개변수를 가진 함수 호출
▷ 디폴트 매개변수 사례
▷ 디폴트 매개변수에 관한 제약 조건
- 디폴트 매개변수는 보통 매개변수 앞에 선언될 수 없음
- 디폴드 매개변수는 끝 쪽에 몰려 선언되어야 함
▷ 매개변수에 값을 정하는 규칙
● 2개의 디폴트 매개 변수로 구성된 경우
● 많은 디폴트 매개 변수를 가진 경우
예제) 디폴트 매개 변수를 가진 함수 선언 및 호출
예제) 디폴트 매개변수를 가진 함수 만들기
▷ 함수 중복 간소화
● 디폴트 매개변수의 장점 → 함수 중복 간소화
● 중복 함수들과 디폴트 매개변수를 가진 함수를 함께 사용 불가
예제 1) 디폴트 매개변수를 이용하여 중복 함수 간소화
예제 2) 생성자 함수의 중복 간소화
예제2 정답)
▶ 함수 중복의 모호성
- 함수 중복이 모호하여 컴파일러가 어떤 함수를 호출하는지 판단하지 못하는 경우
● 형 변환으로 인한 모호성
● 참조 매개변수로 인한 모호성
● 디폴트 매개변수로 인한 모호성
▷ 매개 변수의 형 변환으로 인한 함수 중복의 모호성
예제) 형 변환으로 인해 함수 중복의 모호성
예제) 참조 매개변수로 인한 함수 중복의 모호성
예제) 디폴트 매개변수로 인한 함수 중복의 모호성
'[C++]' 카테고리의 다른 글
[C++] 프렌드 (0) | 2022.11.01 |
---|---|
[C++] static (0) | 2022.10.26 |
[C++] 얕은 복사와 깊은 복사 (0) | 2022.10.23 |
[C++] 참조 (0) | 2022.10.23 |
[C++] 인자 전달 방식 (0) | 2022.10.15 |
댓글