以两个类A
和B
为例,其中B
来自A
。如果我使用A
实现方法,例如:
void sum(A &val)
{
//do stuff
}
然后,如果我使用类型为sum()
的对象调用B
,那么:
B b;
sum(b);
这是否会创建b
的临时副本?谢谢!
答案 0 :(得分:1)
如果b是B的实例,如果我调用sum(b),是否会生成b的临时副本?
不,它只会引用内存中b
的位置。
答案 1 :(得分:1)
不,通过引用传递时没有副本。参数是参数的别名。当(被调用)函数读取或写入参数时,它实际上读取或写入参数本身。在您的情况下,b
对象本身。