采用以下可以正常工作的简单模板函数:
template<typename T>
double Average(T tArray[], int nElements)
{
T tSum = T(); // tSum = 0
for (int nIndex = 0; nIndex < nElements; ++nIndex)
{
tSum += tArray[nIndex];
}
return double(tSum) / nElements;
}
我已将第一行更改为T tSum()
,它没有被编译,因为编译器认为 tSum 是一个函数,不能在 for 循环中的 + 运算符中使用。您能否告诉我以下这些泛型类型的初始化类型之间有什么区别?
- 类型 var = Type();
- 类型 var();
int var()
考虑到例如两者和int var = int()
是相同的,我认为可以替换这些行!