nakka soft world !
function template 본문
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