函数模板实例
这是值得考虑一下如何模板函数的实现在C + +,因为未来的教训将关闭一些这些概念。原来,C++不编译模板函数直接。相反,在编译的时候,当编译器调用一个函数模板,它复制的模板功能,并与实际类型代替模板类型参数!与实际类型的函数被调用函数模板实例。
让我们来看看这样一个例子看看。首先,我们有一个模板函数:
1
2
3
4
5
|
template
<
typename
Type>
// this is the template parameter declaration
Type max(Type tX, Type tY)
{
return
(tX > tY) ? tX : tY;
}
|
1
|
int
nValue = max(3, 7);
// calls max(int, int)
|
1
2
3
4
|
int
max(
int
tX,
int
tY)
{
return
(tX > tY) ? tX : tY;
}
|
现在这是一个“正常”功能,可以编译成机器语言。
现在,让我们说以后在你的代码,你叫max()再次使用不同的类型:
1
|
double
dValue = max(6.34, 18.523);
// calls max(double, double)
|
1
2
3
4
|
double
max(
double
tX,
double
tY)
{
return
(tX > tY) ? tX : tY;
}
|