可能重复:
What is the difference between a template class and a class template?
我看到this问题,我也看到了接受的答案。 然后我google了一下,找到了下面的here
模板类与类模板
模板类:在客户端提供所需信息之前未实例化的通用定义或参数化类;普通模板的术语
类模板:类模板指定如何构造单个类,就像类指定如何构造单个对象的方式一样;普通班的行话
现在我很困惑哪一个是真的
答案 0 :(得分:3)
在C ++中,没有模板类这样的东西。只有类模板。
即字面意义上, templates 用于创建类。
例如, template <typename T> std::vector<T>
不是一个类。它是一个模板,如果您提供适当的T
,则可以生成一个类。
当然,人们经常说“模板类”,当他们的意思是“类模板,所以没有真正的区别。但正式地说,一个存在于C ++中,另一个不存在。
答案 1 :(得分:2)
在英语中,顺序通常是修饰符修改的,所以类
模板它是一个定义类的模板,作为模板
class 是一个由模板 - 实例化定义的类
换句话说,一个类模板。在早期,一些
文学使用了这种区别,但在某一点上,人们在工作
在标准上决定它可能令人困惑,并决定使用
术语 instantiation 系统地实现了一个实例化
模板的意思是。因此,在标准的语言中,您将
永远不会看到“模板类”(除非有人意外滑倒)。 (在一个
更大的上下文,“模板类”可能指的是一个类
实现或控制某种“模板”。在我目前
应用程序,我有一个class Template {...};
,例如。这有
但是,与C ++模板无关。)