在将对象传递给方法或函数时,如果对象不是由new
关键字发起的,则对象是通过引用还是通过值传递的?
My_object a;
my_function(a);
然后将对象作为引用或值传递给函数吗?
void my_function(My_object a){
}
还是我需要添加&
吗?
void my_function(My_object &a){
}
答案 0 :(得分:2)
对象的传递方式取决于函数的参数,而不取决于对象的创建方式。
My_object a
表示它已按值传递。
要通过引用传递,您需要使用My_object& a
。如果您不打算更改对象,则可以选择const My_object& a
。这样可以避免意外覆盖。