模板类Vs类模板

时间:2012-05-17 09:43:07

标签: c++ class templates

  

可能重复:
  What is the difference between a template class and a class template?

我看到this问题,我也看到了接受的答案。 然后我google了一下,找到了下面的here

模板类与类模板

模板类:在客户端提供所需信息之前未实例化的通用定义或参数化类;普通模板的术语

类模板:类模板指定如何构造单个类,就像类指定如何构造单个对象的方式一样;普通班的行话

现在我很困惑哪一个是真的

2 个答案:

答案 0 :(得分:3)

在C ++中,没有模板类这样的东西。只有类模板。

即字面意义上, templates 用于创建

例如,

template <typename T> std::vector<T>不是一个类。它是一个模板,如果您提供适当的T,则可以生成一个类。

当然,人们经常说“模板类”,当他们的意思是“类模板,所以没有真正的区别。但正式地说,一个存在于C ++中,另一个不存在。

答案 1 :(得分:2)

在英语中,顺序通常是修饰符修改的,所以类 模板它是一个定义类的模板,作为模板 class 是一个由模板 - 实例化定义的类 换句话说,一个类模板。在早期,一些 文学使用了这种区别,但在某一点上,人们在工作 在标准上决定它可能令人困惑,并决定使用 术语 instantiation 系统地实现了一个实例化 模板的意思是。因此,在标准的语言中,您将 永远不会看到“模板类”(除非有人意外滑倒)。 (在一个 更大的上下文,“模板类”可能指的是一个类 实现或控制某种“模板”。在我目前 应用程序,我有一个class Template {...};,例如。这有 但是,与C ++模板无关。)