将显式关键字用于一个参数构造函数

适应性

我发现了另一个很久以前就回答过的问题,但我并不真正理解其中的一个答案。埃迪(Eddie)的回答中,他说,如果您使用的String mystring = 'x';话,x它将被转换为一个int和call String(int)为什么此语句调用构造函数?我认为,要使用构造函数,您必须使用类似的语句String mystring('x')赋值运算符是否=等效于创建对象的新实例?

0x499602D2

T t(x)称为直接初始化T t = x称为复制初始化复制初始化甚至不使用赋值=因为它是在声明时使用的,所以它是一种初始化形式。

在复制初始化期间,如果初始化程序的类型与要创建的对象的类型不匹配,则将搜索并调用转换构造函数(如果有)以转换初始化程序。结果是一个临时实例,该实例可以复制或移动构造到对象中。

例如,由于'x'与的类型不匹配String,因此将搜索适当的构造函数并将其转换'x'String实例。String::String(int)构造选择,结果是一个临时的实例String('x')然后(由于临时变量是一个右值),如果有移动构造函数可用,则该临时变量将被移动构造成mystring副本,否则将被复制构造。

如果有一个接受2个参数的构造函数,是否可以=在这种情况下使用

是的,您可以使用大括号初始化器来提供多个参数。它将为每个参数搜索最佳的构造函数:

struct Square
{
    Square(float width, float height);
};

int main()
{
    // copy-initialization:
    Square square = {2.5, 4.0}; // calls Square(2.5, 4.0)
}

但是请注意,如果有一个采用std::initializer_list相同类型的构造函数,则它将覆盖上面显示的行为:它将改为调用初始化程序列表构造函数。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将显式关键字用于一个参数构造函数

来自分类Dev

为什么双参数构造函数以显式关键字开头?

来自分类Dev

使用多个参数的构造函数是否需要显式关键字?

来自分类Dev

为什么双参数构造函数以显式关键字开头?

来自分类Dev

朱莉娅-将关键字参数传递给另一个函数?

来自分类Dev

在一个类中使用关键字this与多个构造函数

来自分类Dev

Common Lisp:如何将关键字参数传递给另一个函数?

来自分类Dev

创建一个在原始函数中设置关键字参数的局部函数

来自分类Dev

TypeError:已定义的函数有一个意外的关键字参数“很多

来自分类Dev

如何通过另一个函数将关键字参数传递给`range`函数,并保持用户使用Julia的灵活性?

来自分类Dev

当仅显式返回一个参数时,Powershell函数将返回所有参数

来自分类Dev

给关键字一个排名

来自分类Dev

参数类型的构造函数中“ where”关键字的用途

来自分类Dev

失去“ this”关键字的显式绑定

来自分类Dev

与形式(位置),* args和** kwargs一起使用时,显式传递命名(关键字)参数

来自分类Dev

构造函数使用1个参数,但基本关键字使用2个参数时会发生什么情况

来自分类Dev

构造函数使用1个参数,但基本关键字使用2个参数时会发生什么情况

来自分类Dev

具有所有默认参数的显式构造函数不能从同一类的另一个构造函数调用

来自分类Dev

与在函数签名中使用“ class”关键字声明一个变量相比,在函数签名中使用“ class”关键字声明一个变量

来自分类Dev

与在函数签名中使用“ class”关键字声明一个变量相比,在函数签名中使用“ class”关键字声明一个变量

来自分类Dev

需要两个关键字参数中的一个

来自分类Dev

如何使用'do'关键字语法制作一个接受匿名函数的函数?

来自分类Dev

C ++在一个函数上使用两个模板关键字

来自分类Dev

如何代理一个匿名函数,以便两个“ this”关键字都可用?

来自分类Dev

提取两个关键字或一个关键字与\ n之间的文本

来自分类Dev

将哈希传递给接受关键字参数的函数

来自分类Dev

backend_qt5.py“'figure'是一个未知的关键字参数,在matplotlib中

来自分类Dev

all()在Django中有一个意外的关键字参数'pk'

来自分类Dev

ag比较版本产生:render()得到一个意外的关键字参数'context'

Related 相关文章

  1. 1

    将显式关键字用于一个参数构造函数

  2. 2

    为什么双参数构造函数以显式关键字开头?

  3. 3

    使用多个参数的构造函数是否需要显式关键字?

  4. 4

    为什么双参数构造函数以显式关键字开头?

  5. 5

    朱莉娅-将关键字参数传递给另一个函数?

  6. 6

    在一个类中使用关键字this与多个构造函数

  7. 7

    Common Lisp:如何将关键字参数传递给另一个函数?

  8. 8

    创建一个在原始函数中设置关键字参数的局部函数

  9. 9

    TypeError:已定义的函数有一个意外的关键字参数“很多

  10. 10

    如何通过另一个函数将关键字参数传递给`range`函数,并保持用户使用Julia的灵活性?

  11. 11

    当仅显式返回一个参数时,Powershell函数将返回所有参数

  12. 12

    给关键字一个排名

  13. 13

    参数类型的构造函数中“ where”关键字的用途

  14. 14

    失去“ this”关键字的显式绑定

  15. 15

    与形式(位置),* args和** kwargs一起使用时,显式传递命名(关键字)参数

  16. 16

    构造函数使用1个参数,但基本关键字使用2个参数时会发生什么情况

  17. 17

    构造函数使用1个参数,但基本关键字使用2个参数时会发生什么情况

  18. 18

    具有所有默认参数的显式构造函数不能从同一类的另一个构造函数调用

  19. 19

    与在函数签名中使用“ class”关键字声明一个变量相比,在函数签名中使用“ class”关键字声明一个变量

  20. 20

    与在函数签名中使用“ class”关键字声明一个变量相比,在函数签名中使用“ class”关键字声明一个变量

  21. 21

    需要两个关键字参数中的一个

  22. 22

    如何使用'do'关键字语法制作一个接受匿名函数的函数?

  23. 23

    C ++在一个函数上使用两个模板关键字

  24. 24

    如何代理一个匿名函数,以便两个“ this”关键字都可用?

  25. 25

    提取两个关键字或一个关键字与\ n之间的文本

  26. 26

    将哈希传递给接受关键字参数的函数

  27. 27

    backend_qt5.py“'figure'是一个未知的关键字参数,在matplotlib中

  28. 28

    all()在Django中有一个意外的关键字参数'pk'

  29. 29

    ag比较版本产生:render()得到一个意外的关键字参数'context'

热门标签

归档