nakka soft world !

function template 본문

프로그래밍언어/C++

function template

nakka 2017. 3. 14. 19:31
728x90

function template


/*

int square(int a)

{

return a * a;

}

double square(double a)

{

return a * a;

}

int main()

{

square(3);

square(3.3);

}

*/


// 함수 템플릿 : 함수를 만들어 내는 틀

template<typename T> T square(T a)

{

return a * a;

}

int main()

{

square(3); // int square(int a) 함수 생성

square(3.3); // double square(double a) 함수 생성

}


int main()

{

int n = 3;

short s = 3;

double d = 3.3

square(n); // int square(int a) 함수 생성. 암시적 추론(컴파일러가 결정).

square(d); // double square(double a) 함수 생성. 암시적 추론(컴파일러가 결정).

square(s); // short square(short a) 함수 생성. 암시적 추론(컴파일러가 결정).

square<int>(s); // int square(int a) 함수 생성.(사용자가 결정)

}

// Code Bloat

// Template을 사용하면 실행파일이 커짐



728x90

'프로그래밍언어 > C++' 카테고리의 다른 글

동적 메모리 할당  (0) 2017.03.14
delete function, suffix return type, trailing return  (0) 2017.03.14
inline function  (0) 2017.03.14
Function Overloading  (0) 2017.03.14
default parameter  (0) 2017.03.14
Comments