템플릿 - 4 함수의 호출 우선 순위
템플릿 함수와 일반 함수,특수화 템플릿 함수가 있을 때 호출 우선 순위를 알아보도록 하겠다.
위와 같은 예제에서 실행을 해보면 다음과 같은 결과가 나온다.
첫번째 int형에 대해서는 특수화, 일반, 템플릿 함수중에서 일반 사용자 정의 함수가 호출 되었다.
두번째 char*형에 대해서는 특수화 템플릿 함수가 호출되었다.
그뒤에 형변환이나 일반 정수에 의한 호출에서도 사용자 정의 함수가 호출 되었다.
마지막 실수형에 대해서는 템플릿 함수가 호출되었다.
이 결과를 가지고 유추해보면 가장 먼저 일반 사용자 정의 함수가 호출 되는 것을 알 수 있다.
그럼 일반 사용자 정의 함수를 주석 처리를 하고 실행해보도록하겠다.
일반 사용자 정의 함수를 제외하면 특수화 템플릿 함수가 일반 템플릿 함수보다 우선 순위가 높은 것을 알 수 있다.
함수 호출 우선순위는
일반 사용자 정의 함수 > 특수화 템플릿 함수 > 일반 템플릿 함수 순이다.
※ 클래스의 경우
전체 특수화 템플릿 클래스 > 부분 특수화 템플릿 클래스 > 일반 템플릿 클래스 순이다.
결과적으로 좀 더 명확한 호출 순으로 호출한다고 생각하면 되겠다.
- 출처 : 윤성우 열혈 C++ 프로그래밍
'Program Languege > C/C++' 카테고리의 다른 글
Console (0) | 2014.03.05 |
---|---|
const의 선언 위치 (0) | 2014.02.20 |
템플릿 - 3 (0) | 2013.03.19 |
템플릿 - 2 (0) | 2013.03.19 |
템플릿 - 1 (0) | 2013.03.19 |