C++/기본 문법 및 개념
[ C++ ] 오버로딩과 디폴트 인자
코딩하는 공대생
2023. 10. 18. 09:40
반응형
오버로딩
같은 함수 이름으로 두가지 이상 함수 정의가 있다면 이것을 오버로딩이라 부른다.
형식 매개변수에서 1) 다른 개수를 가지거나 2) 다른 형의 형식 매개변수를 가져야 한다. 함수 호출이 존재할 때 컴파일러는 함수 호출의 인자와 일치하는 형식 매개변수의 개수와 형을 가지는 함수 정의를 사용한다.
double unitPrice(int diameter, double price);
double unitPrice(int length, int width, double price);
오버로딩 해결을 위한 규칙
1. 정확한 일치 : 인자의 개수와 형이 정확하게(자동 형 변환 없이) 정의와 맞는다면 그것이 사용된다.
2. 자동 형 변환을 사용한 일치 : 정확하게 일치하지 않지만 자동 형 변환을 사용해 일치된다면 그 정의를 사용한다.
디폴트 인자
함수에선 여러 개의 call-by-value에 대한 디폴트 인자를 기술할 수 있다. 만일, 대응하는 인자가 생략되면 디폴트 인자로 대체된다.
디폴트 인자들은 함수 선언에서 주어지는 것이지 함수 정의에서 주어지는 것은 아니다.
모든 디폴트 인자는 가장 오른쪽에 위치해야한다.
double unitPrice(int diameter, double price = 1.0);
double unitPrice(int length, int width, double price = 1.0);
반응형