关于c++的引用

 

看了这篇文章后,小思考了下c++的引用
其实我觉得如果调用者在调用接口上已经涉及了指针的话,接下来把它转为引用只不过是减少心理上的负担而已;如果操作或调用者不能精确的确定该指针调用操作后所处的状态,却试图假定其处于某一状态加以使用,那么即使接下来把它转为引用也于事无补,本身该出现的问题一样会出现的。
当然,在接口上直接使用引用声明,使用者是能够放下心理负担,不用作状态检查了(前提是被调用者必须保证调用过程中引用确实指向了某对象)。
实际上,相对于指针来说,引用只不过是在源代码级上声明了“能够通过我找到实体”的编译期约定;而运行时,就算做出多么病态地址指向操作,也非引用力所能及,只有作运行时地址检查才能排除运行时空指向问题。

看了金庆这篇文章后,小思考了下c++的引用。

以下是回复的一段话

"""

其实我觉得如果调用者在调用接口上已经涉及了指针的话,接下来把它转为引用只不过是减少心理上的负担而已;如果操作或调用者不能精确的确定该指针调用操作后所处的状态,却试图假定其处于某一状态加以使用,那么即使接下来把它转为引用也于事无补,本身该出现的问题一样会出现的。

当然,在接口上直接使用引用声明,使用者是能够放下心理负担,不用作状态检查了(前提是调用者或被调用者必须保证引用确实指向了某对象)。

实际上,相对于指针来说,引用只不过是在源代码级上声明了“能够通过我找到实体”的编译期约定;而运行时,就算做出多么病态地址指向操作,也非引用力所能及,只有作运行时地址检查才能排除运行时空指向问题。

"""

如果不考虑源代码的“优雅”和表达形式(例如运算符重载后语法形式的一致性需要),Type & obj 和 Type * const _obj 的语义似乎并没有太大的区别。

原文链接: https://www.cnblogs.com/tnt_vampire/archive/2010/04/24/1719348.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    关于c++的引用

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/10328

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月6日 下午11:31
下一篇 2023年2月6日 下午11:36

相关推荐