Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
向函数传递值时调用哪些函数 C++中,如果类的一个对象作为参数传递到函数中,则调用类的复制构造函数。_C++_C_Function_Parameter Passing - Fatal编程技术网

向函数传递值时调用哪些函数 C++中,如果类的一个对象作为参数传递到函数中,则调用类的复制构造函数。

向函数传递值时调用哪些函数 C++中,如果类的一个对象作为参数传递到函数中,则调用类的复制构造函数。,c++,c,function,parameter-passing,C++,C,Function,Parameter Passing,我想知道如果对象是非类类型的,将调用什么函数 类似地,在C语言中,将变量的值或地址传递给函数时调用什么函数 谢谢和问候 不会调用任何函数;组成对象的字节将简单地复制到被调用方的正确位置,即内存或寄存器中的某个位置。不调用任何函数 由于非对象类型没有方法,它们只是简单地复制到堆栈上,供函数按原样使用。仅当对象按值传递且为非类型时,才会调用复制构造函数。这是一个原因,如果您不希望函数更改对象,通常会通过引用和常量引用来传递对象。这取决于实现,但在某些情况下,如果您将浮点值传递给期望整数类型的函数,则

我想知道如果对象是非类类型的,将调用什么函数

类似地,在C语言中,将变量的值或地址传递给函数时调用什么函数


谢谢和问候

不会调用任何函数;组成对象的字节将简单地复制到被调用方的正确位置,即内存或寄存器中的某个位置。

不调用任何函数


由于非对象类型没有方法,它们只是简单地复制到堆栈上,供函数按原样使用。

仅当对象按值传递且为非类型时,才会调用复制构造函数。这是一个原因,如果您不希望函数更改对象,通常会通过引用和常量引用来传递对象。

这取决于实现,但在某些情况下,如果您将浮点值传递给期望整数类型的函数,则可能会引发函数调用。这是一个实现细节,而不是语言的一部分,这是真的,但它同样值得考虑,因为这一点。不管是否需要函数调用,这种转换通常都很慢。

Eh?你说的非类类型是什么意思?基本类型只是推送到堆栈上,不需要调用任何函数。