为什么在c++模板中使用typename或class关键字



在定义模板以使用自定义数据类型时,我们遵循如下语法:

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";关键字?

在这种情况下,它们是完全同义词,是一个偏好问题。选择一个并坚持下去。

相关内容

  • 没有找到相关文章

最新更新