4

在 c++ 中的函数调用中,参数被复制到相应的参数中。这是初始化还是赋值?

4

3 回答 3

7

参数传递语义是初始化的语义。这意味着,您的类的复制/移动构造函数将被调用。

于 2013-02-06T20:04:13.347 回答
1

然后参数是按值复制构造的(即初始化)。

于 2013-02-06T20:03:17.220 回答
0

初始化:(请查看原稿

5.2.2 函数调用

调用函数时,每个参数都应使用其对应的参数进行初始化。[这样的初始化相对于彼此的顺序是不确定的] 当一个函数被调用时,具有对象类型的参数应该具有完全定义的对象类型。[这仍然允许参数是指向不完整类类型的指针或引用。但是,它可以防止按值传递的参数具有不完整的类类型。]在参数初始化期间,实现可以通过组合相关参数的转换和/或临时对象的构造来避免构造额外的临时对象随着参数的初始化。参数的生命周期在定义它的函数返回时结束。每个参数的初始化和销毁​​发生在调用函数的上下文中。[在调用函数的调用点检查构造函数、转换函数或析构函数的访问。如果函数参数的构造函数或析构函数抛出异常,则在调用函数的范围内开始搜索处理程序;特别是,如果被调用的函数有一个带有可以处理异常的处理程序的函数尝试块,则不考虑该处理程序。]

于 2013-02-06T20:07:00.807 回答