您的位置:首页 > 产品设计 > UI/UE

条款20:宁以pass-by-reference-to-const替换pass-by-value

2009-11-09 14:09 501 查看
一、为什么不是pass-by-reference而是pass-by-reference-to-const

原先的pass-by-value函数接受了一个参数,进行的操作都是在副本上做的。因此调用者知道函数内绝不会对传入的实参做任何改变。所以这里要加上 const。

二、总结

1.尽量以pass-by-reference-to-const 代替pass-by-value。前者通常比较高效,并且避免且可问题(sliceing problem)。

2.以上规则并不适用于内置类型(对于内置类型,pass-by-value通常更搞笑),以及STL的迭代器和函数对象(习惯上他们都被设计为pass-by-value,另外我的理解是,对于内含指针的对象,在这一点上都应小心,需要考虑深复制和浅复制)。对他们而言,pass-by-value往往比较适当。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐