Q
参考传递
0
A
回答
1
我们正在传递参考,以便不会制作stack
对象的副本。如果进行了复制,则对其进行修改不会影响传递给该函数的原始对象stack
。它只会影响功能本地的副本。
引用就像对象的别名;当宣布为
stack<int>& source
source
现在引用该对象。
1
在所提到的问题中所使用的函数具有下列原型:
void Hanoi(int nDisks, stack<int> source, stack<int> intermed, stack<int> dest)
即它需要全部通过stack<int>
对象由值。创建了传递stack
的副本,并且在此函数体内对此对象所做的任何更改都会更改副本,而不是传递给它的原始对象。
这就是为什么解决方案是通过引用传递这些stack
对象而不是按值传递。基本上引用(如stack<int>& dest
)允许你把dest
的Hanoi
函数内部就像它的类型是stack<int>
,这里还有没有复制和变化给调用者:)
相关问题
- 1. 传递参考
- 2. swift:传递参考
- 3. php参考传递
- 4. 作为参考传递控制参考
- 5. 传递参考和使用参考
- 6. 按值传递与传递参考
- 7. 传递值作为参考
- 8. 类中的传递参考
- 9. 在C++中传递参考
- 10. 数组和参考传递
- 11. 自动传递参数在C参考
- 12. 传递列表参数为参考
- 13. 在JavaScript中传递参考字符串
- 14. 按价值/参考传递,什么?
- 15. 委托功能,如何传递参考?
- 16. RMI:按价值或参考传递?
- 17. 传递数组参考[Swift 3 Xcode 8]
- 18. 通过参考传递数组Objective-C
- 19. 传递参考时Angularjs数据绑定?
- 20. 传递数组作为参考C++
- 21. 通过类参考传递选择器
- 22. 通过参考传递标签
- 23. golang:返回指针或传递参考
- 24. JNA传递的char *通过参考
- 25. 从维度(维度)传递layout_weight参考
- 26. C++ - 通过数组传递参考
- 27. 传递参考行为从ncurses
- 28. 传递非参考价值任务
- 29. 仅仅通过参考传递?
- 30. 传递参考如何工作?
可见你是问一提的是什么?这应该由你的C++书来解释。 – 2013-03-22 15:53:22
如果你没有通过引用传递,那么它会创建一个容器的副本,如果你想修改实际的变量,那么它就不是你想要的。 – 2013-03-22 15:54:11
引用在技术上只是一个指针。阅读RAII和指针。 – Paranaix 2013-03-22 15:54:12