【问题标题】:Template Class Vs Class Template [duplicate]模板类与类模板[重复]
【发布时间】:2012-05-17 09:43:06
【问题描述】:

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

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

模板类与类模板

模板类:一个通用定义或一个参数化的类,直到客户端提供所需的信息才被实例化;普通模板的术语

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

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

【问题讨论】:

  • 恕我直言,该问题的公认答案非常明确且技术上正确。

标签: c++ class templates


【解决方案1】:

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

也就是说,从字面上看,模板用于创建

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-27
      • 2017-10-26
      • 2020-12-16
      • 1970-01-01
      • 2016-02-25
      • 1970-01-01
      • 2020-07-25
      相关资源
      最近更新 更多