Gig*_*gas 0 c++ pass-by-reference
最近我一直在学习C++中的优秀编程实践,并发现许多程序通过引用将对象传递给函数,因此不会创建多个实例.我还了解到,传递一个常量引用可以防止原始对象被修改但是我不明白它是如何工作的.不应该是常量引用创建一个新实例,因为原始对象不能通过引用修改,但引用仍然可以像单独的对象一样使用?我很确定这不是它的工作原理但是,它是如何工作的?我错过了什么吗?
我还了解到,传递常量引用可以防止原始对象被修改[...]
不完全的.您不得修改对象通过的const &
.换句话说,您具有只读访问权限.但是没有任何东西本身阻止其他具有读写访问权限的代码(例如引用对象的原始所有者)来修改它.在设计时你需要小心,这样的改变不会让你感到惊讶.