2010-12-09 127 views
9

可能重复:
What is the difference between a template class and a class template?“类模板” 与 “模板类”

我见过几个C++大师们对人们撕裂调用类似

template <typename T> 
class SomeClass 
{ 
    //... 
}; 

模板类而不是类模板。 (不是一个巨大的翻版,介意你,但作为一个迹象表明某人不是一个有经验的C++程序员)是的,正确的词是“类模板” - 因为它是一个用于生成类的模板。

但我不明白为什么在典型的谈话中区分很重要。没有人聆听/阅读你写的内容会明白你在说什么意味着什么。

标准中是否存在“模板类”一词的某些特定用法,或者是否按照该顺序使用这些单词严重错误?

+0

不要忘记,还有很多人坚持“正确地打电话”。 – sharptooth 2010-12-09 07:53:53

+0

@sharptooth:我全都是为了挑选一些小技术或迂腐的答案(毕竟我是一名C++程序员)。但通常这个评论针对的是发表评论的人而不是答案的内容。 – 2010-12-09 07:56:24

+0

[模板类和类模板之间有什么区别?]的可能重复(http://stackoverflow.com/questions/879535/what-is-the-difference-between-a-template-class-and-一个类模板)或[类模板和模板类](http://stackoverflow.com/questions/2983146/class-templates-and-template-class) – 2010-12-09 08:00:26

回答

5

根据this page

注意条款 类模板与模板类的区别:

  • 类模板 是用来生成模板类的模板。您不能声明 类模板的对象。
  • 模板类 是类模板的一个实例。

MSDN页似乎对这个定义达成一致:

与函数模板,当 实例化一个类模板,你 必须明确给出的参数为实例化类 类 模板。

[...]

编译器用于 模板类或功能,当类或函数被实例化生成代码。

1

快速搜索产生:

问: 是否有一个函数模板和模板 函数或类模板和 模板类之间有区别吗?

答: 术语“功能模板”是指一种模板。 术语“模板函数”有时用于表示同一件事物,有时用来表示函数模板中实例化的函数 。通过使用前者的“函数模板”和 (如后者的“函数模板实例”或“ 函数模板的实例”),可以最好地避免这种不明确性 。请注意,函数 模板不是函数。相同的区别 适用于“类模板”与“模板类”。

对我有意义。

0

我个人不会纠正,但我可以看到它背后的逻辑。这与将超类称为子类没有什么不同,反之亦然。他们所说的内容是不正确的,并不意味着同样的事情。

重要的是,尤其是对于更多的初级程序员来说,用代码来思考,而当你不正确地将语言翻译回英文时,这是不可能的。