8.1(수) C++ - 함수 template

from Study/C++ 2007/08/02 16:00 view 19808

#include <iostream>

using namespace std;

 

// 1. 함수template

// (1) instantiation : T -> 특정 type으로 변경되는 과정.

// (2) template 의원리: Code Generation ->
//      단점: Code Bloat(코드가커질수있다.),2번 컴파일 한다.

// (3) template 2번문법을 확인하게 된다.

// (4) internal linkage를가진다.(완전한 구현체를 가져야 한다.),다른파일에 정의하면 에러

//             클래스template를 만들때에서 선언과 구현 모두 헤더에 넣어야 한다.

// (5) 함수template overloading 된다.

 

template <typename T> T Max( T a, T b )  // 1

{

        return a < b ? b : a;

}

 

int Max( int a, int b )                  // 2

{

        return a < b ? b : a;

}

 

void main()

{

        cout << Max( 1, 2 ) << endl;     // 2

        cout << Max( 3.4, 3.2 ) << endl; // 1

        // 2. 6.0은에러.int버전이없다면Tambigous 하다는에러.
       
cout << Max( 65, 'B' ) << endl;

}

Tag |

Trackback Address :: 이 글에는 트랙백을 보낼 수 없습니다