#include<iostream>
using namespace std;
///////////////////////////////////////////////////////////////////////////////////////
//함수 템플릿 이야기
// 함수 인자 값으로 받으면 : 배열 -> 포인터 함수-> 함수 포인터로 변경하여 전달된다.
// 이러한 현상을 Decay 라고 부른다.
///////////////////////////////////////////////////////////////////////////////////////
/*
template<typename T>void foo(T a){
//template<typename T>void foo(T& a){ //참조로 받으면 정확한 타입이 넘어온다
//참조냐? 값이냐에 따라 달라진다.
//template 에서는 가상함수가 없어도 빌트인 타입이 없어도 typeid()사용이 가능합니다.
cout << typeid(a).name() << endl;
}
int main(){
int n =10;
int x[10];
foo(n); // T-> int
foo(x); // int *
foo("apple"); // const char *
foo(main); //int (*)()
}
*/
template<typename T> void foo(const T& a, const T& b)
//template<typename T> void foo(const T a, const T b)
{
}
///아래와 같이 따로 받는것이 나을수도 있따.
void foo(const char *s1, const char * s2)
{
}
int main()
{
foo("orange","apple"); // 함수 찾는 순서
//1. 정확한 타입이 있으면 찾는다
//2. 변환 가능 타입이 있으면 찾는다.
//3. template 버전을 사용한다.
}
'C,C++ > Android_FrameWork' 카테고리의 다른 글
[SSM 안드로이드 프레임워크 개발 강의]29. 템플릿이야기3 (멤버함수 템플릿) (0) | 2012.08.16 |
---|---|
[SSM 안드로이드 프레임워크 개발 강의]28. 템플릿이야기 2(클래스 템플릿) (0) | 2012.08.16 |
[SSM 안드로이드 프레임워크 개발 강의]26. RTTI , RTCI 직접 구현해보기 (0) | 2012.08.16 |
[SSM 안드로이드 프레임워크 개발 강의]25. RTTI 이야기 (0) | 2012.08.16 |
[SSM 안드로이드 프레임워크 개발 강의]24. 가상 소멸자 이야기 (0) | 2012.08.16 |