本质上没有区别。
在使用类模板时,typename 或 class 表示定义一个通用的类型说明符。
比如编写一个求数组长度的函数:
template <class T>
int getArryLen(T& array){
return sizeof(array) / sizeof(array[0]);
}
上面的代码等效于:
template <typename T>
int getArryLen(T& array){
return sizeof(array) / sizeof(array[0]);
}
为了不和类定义的关键字class混淆 ,所以建议使用typename代替class.
> 参考自:C++ Primer Plus第六版,568页。