作为值语义语言,C++
按值传递所有参数。因此,当我将指针传递给对象时,对象通过引用传递,但pointer
本身是通过值传递(尽管我相信对象是< strong>未通过,只有pointer
,我们通过引用访问函数中的对象。我认为这个想法也符合值语义,因为如果我这样想,值语义会变得更有意义,除了值之外什么都不会传递。
因此,这种方式对pointer
有意义,因为pointer
某事物本身就是一个对象,它同时包含lvalue
和rvalue
。在传递pointer
作为参数时,会发送rvalue
的副本,就像任何其他对象一样(例如传递整数)。
但是reference
呢?从理论上讲,reference
不是任何单个对象,id没有任何标识,只是它所引用的对象的别名。 reference
的常见实现可能位于pointer
的顶部,但不常见的实现呢?即使按pointer
实现,它是否按值传递?