컴파일러가 overloading 된 함수를 찾는 순서
1. 완전 일치(exact match)
타입이 완벽하게 일치된 타입을 선택한다.(가벼운 형 변환 가능)
가벼운 형 변환이란, int arr[10] -> int * , void* -> char* 의 casting을 말한다.
2. 승격(promotion)
데이터의 손실이 없는 방향으로 타입을 형 변환한다.
3. 기본 변환(standard conversion)
기본 타입에 한해 데이터의 손실이 발생하더라도 형 변환한다.
4. 사용자 정의 변환(user define conversion)
1, 2, 3 번 function에 matching 되지 않는다면, 컴파일러는 최종적으로 가변인자를 가지는 함수를 호출한다.
타입이 완벽하게 일치된 타입을 선택한다.(가벼운 형 변환 가능)
가벼운 형 변환이란, int arr[10] -> int * , void* -> char* 의 casting을 말한다.
2. 승격(promotion)
데이터의 손실이 없는 방향으로 타입을 형 변환한다.
3. 기본 변환(standard conversion)
기본 타입에 한해 데이터의 손실이 발생하더라도 형 변환한다.
4. 사용자 정의 변환(user define conversion)
1, 2, 3 번 function에 matching 되지 않는다면, 컴파일러는 최종적으로 가변인자를 가지는 함수를 호출한다.
댓글 없음:
댓글 쓰기