在定义模板以使用自定义数据类型时,我们遵循如下语法:
template<class T>
class Operators{
public:
T variable1 ;
}
为什么我们需要使用";类";关键字在这里,为什么简单的模板不起作用,还有很多地方"typename";也用以代替";class:再说一遍,为什么要用那个?
此外,何时使用";类";关键字以及何时使用";typename";关键字?
使用class或typename是完全相同的事情,而且主要是偏好问题。
有些人更喜欢使用typename,因为类型可能不是类,因此typename看起来更清晰。
问题是关键字typename有另一个用途,因此如果两者都在同一行,可能会非常混乱:
template<typename Vector, typename Iterator = typename Vector::iterator>
在这种情况下,课堂可以帮助更好地发挥作用。
template<class Vector, class Iterator = typename Vector::iterator>
template class
定义了模板类。
template void f()
定义了模板函数。
template using t
定义了模板别名。
为什么我们需要使用;类";这里的关键字,为什么简单的模板不能工作
因为template
不是类独有的。
还有什么时候使用";类";关键字以及何时使用";typename";关键字?
在这种情况下,它们是完全同义词,是一个偏好问题。选择一个并坚持下去。