0

可能重复:
模板类和类模板有什么区别?

我看到了这个问题,也看到了接受的答案。然后我用谷歌搜索了一下,在这里找到了以下内容

模板类与类模板

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

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

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

4

2 回答 2

3

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

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

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

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

于 2012-05-17T10:10:27.177 回答
2

在英语中,顺序通常是修饰符修饰的,因此类模板是定义类的模板,其中作为模板类是由模板定义的类——换句话说,类模板的实例化。在早期,一些文献使用了这种区别,但有一次,制定标准的人认为它可能会造成混淆,并决定系统地使用术语实例化来表示模板的实例化。因此,在标准的语言中,您永远不会看到“模板类”(除非不小心滑入)。(在更大的上下文中,“模板类”可能是指实现或控制某种“模板”的类。在我当前的应用程序中,class Template {...};, 例如。但是,这与 C++ 模板无关。)

于 2012-05-17T11:16:50.763 回答