템플릿 Template
템플릿 Template
int max(int x[], int len)
{
int max = x[0];
for (int i = 0; i < len; i++)
if (max < x[i])
max = x[i];
return max;
}
long max(long x[], int len)
{
long max = x[0];
for (int i = 0; i < len; i++)
if (max < x[i])
max = x[i];
return max;
}
double max(double x[], int len)
{
double max = x[0];
for (int i = 0; i < len; i++)
if (max < x[i])
max = x[i];
return max;
}
int main()
{
int small[] = { 1, 24, 34, 22 };
long medium[] = { 23, 345, 234, 123 };
double large[] = { 23.0, 1.4, 2.3, 56.2 };
int lensmall = sizeof small / sizeof small[0];
int lenmedium = sizeof medium / sizeof medium[0];
int lenlarge = sizeof large / sizeof large[0];
cout << max(small, lensmall) << endl;
cout << max(medium, lenmediuml) << endl;
cout << max(large, lenlarhe) << endl;
}
데이터 타입만 다를뿐 함수 내용이 같을때 템플릿을 사용하면 편하다.
컴파일 할때 위 처럼 각각의 함수가 만들어진다.
template<class T> max(T x[], int len)
{
T max = x[0];
for (int i = 0; i < len; i++)
if (max < x[i])
max = x[i];
return max;
}
int main()
{
int small[] = { 1, 24, 34, 22 };
long medium[] = { 23, 345, 234, 123 };
double large[] = { 23.0, 1.4, 2.3, 56.2 };
int lensmall = sizeof small / sizeof small[0];
int lenmedium = sizeof medium / sizeof medium[0];
int lenlarge = sizeof large / sizeof large[0];
cout << max(small, lensmall) << endl;
cout << max(medium, lenmediuml) << endl;
cout << max(large, lenlarhe) << endl;
}