构造函数内部为类名称添加和省略模板参数之间的区别

有抱负的垫子

我想知道两者之间是否本质上有区别:

template <typename T> 
class foo{
  foo<T>(){};
};

template<typename T>
class foo{
  foo(){};
};

两者似乎都有效,但我不了解两者之间的区别。第一个让我感到困惑,我不明白<T>在这里的作用。

songyuanyao

根据jected -class-name的规则,它们完全是同一回事。

$ 14.6.1 / 1本地声明的名称[temp.local]

像普通的(非模板)类一样,类模板也具有注入的类名(子句[class])。注入的类名称可以用作模板名称或类型名称。当它与template-argument-list一起使用,作为模板template-parameter的模板参数或作为朋友类模板声明的elaborated-type-specifier中的最终标识符时,它指的是类模板本身。否则,它等效于模板名称,后跟<>中包含的类模板的模板参数。

因此foofoo<T>在这里引用相同的内容。进一步来说,

第一个让我感到困惑,我不明白<T>在这里的作用。

您正在使用foo带有其模板参数T(即foo<T>的inject-class-name ,它引用模板类本身。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在使用相同名称的构造函数参数初始化成员变量时,=和{}之间的区别

来自分类Dev

构造函数内部和外部的forall量词之间的区别

来自分类Dev

= default和没有参数的空构造函数之间的区别?

来自分类Dev

构造函数:默认和委派参数之间的区别

来自分类Dev

类和def内部的python lambda函数之间的区别

来自分类Dev

类成员和构造函数参数使用相同的名称

来自分类Dev

构造函数和构造文字之间的区别

来自分类Dev

构造函数和构造文字之间的区别

来自分类Dev

默认(用户定义)构造函数和带有默认参数的构造函数之间的区别?

来自分类Dev

Java中的无参数构造函数和默认构造函数之间的区别

来自分类Dev

有构造函数的类和没有调用函数的类之间的区别?

来自分类Dev

有构造函数的类和没有调用函数的类之间的区别?

来自分类Dev

如何从类构造函数传递模板参数

来自分类Dev

派生类(构造函数有参数)和基类(构造函数不带参数)之间没有可行的转换

来自分类Dev

具有空构造函数的Stateless类和Static类之间有什么区别?

来自分类Dev

instanceof和构造函数属性之间的区别

来自分类Dev

构造函数和方法之间的区别

来自分类Dev

const构造函数和成本之间的区别?

来自分类Dev

instanceof和构造函数属性之间的区别

来自分类Dev

根据类模板参数敲除类模板构造函数

来自分类Dev

在内部和外部构造函数之间定义公共方法有什么区别?

来自分类Dev

构造函数,模板和非类型参数

来自分类Dev

在C ++容器中作为模板参数提供的分配器与作为构造函数参数提供的分配器之间的区别?

来自分类Dev

模板类和遍历的默认构造函数

来自分类Dev

可变参数模板构造函数和副本构造函数

来自分类Dev

如何在C ++中使用通用引用参数为模板类编写构造函数

来自分类Dev

类/结构内部和外部的模板参数

来自分类Dev

类C,构造函数和统一初始化之间有什么区别?

来自分类Dev

构造函数之间的区别

Related 相关文章

  1. 1

    在使用相同名称的构造函数参数初始化成员变量时,=和{}之间的区别

  2. 2

    构造函数内部和外部的forall量词之间的区别

  3. 3

    = default和没有参数的空构造函数之间的区别?

  4. 4

    构造函数:默认和委派参数之间的区别

  5. 5

    类和def内部的python lambda函数之间的区别

  6. 6

    类成员和构造函数参数使用相同的名称

  7. 7

    构造函数和构造文字之间的区别

  8. 8

    构造函数和构造文字之间的区别

  9. 9

    默认(用户定义)构造函数和带有默认参数的构造函数之间的区别?

  10. 10

    Java中的无参数构造函数和默认构造函数之间的区别

  11. 11

    有构造函数的类和没有调用函数的类之间的区别?

  12. 12

    有构造函数的类和没有调用函数的类之间的区别?

  13. 13

    如何从类构造函数传递模板参数

  14. 14

    派生类(构造函数有参数)和基类(构造函数不带参数)之间没有可行的转换

  15. 15

    具有空构造函数的Stateless类和Static类之间有什么区别?

  16. 16

    instanceof和构造函数属性之间的区别

  17. 17

    构造函数和方法之间的区别

  18. 18

    const构造函数和成本之间的区别?

  19. 19

    instanceof和构造函数属性之间的区别

  20. 20

    根据类模板参数敲除类模板构造函数

  21. 21

    在内部和外部构造函数之间定义公共方法有什么区别?

  22. 22

    构造函数,模板和非类型参数

  23. 23

    在C ++容器中作为模板参数提供的分配器与作为构造函数参数提供的分配器之间的区别?

  24. 24

    模板类和遍历的默认构造函数

  25. 25

    可变参数模板构造函数和副本构造函数

  26. 26

    如何在C ++中使用通用引用参数为模板类编写构造函数

  27. 27

    类/结构内部和外部的模板参数

  28. 28

    类C,构造函数和统一初始化之间有什么区别?

  29. 29

    构造函数之间的区别

热门标签

归档