我正在阅读C++ pros and cons这个问题的答案,并且在阅读评论时有这个疑问。
我的问题是,为什么this
指针不是引用?使其成为指针有任何特殊原因吗?
为什么this
作为引用会更有意义:
Item 1
中的More Effective C++
:在确保我们有一个有效的对象(即非NULL(我的解释))时使用引用。 .
)的语法比访问指针(->
或(*)
)更好一些,也更短。 最佳答案
当该语言首次发展时,在具有实际用户的早期版本中,没有引用,只有指针。添加运算符(operator)重载时添加了引用,因为它要求引用保持一致。this
的用途之一是使对象获得指向自身的指针。如果是引用,则必须编写&this
。另一方面,当我们编写赋值运算符时,我们必须使用return *this
,它看起来比return this
更简单。因此,如果您有空白,您可以选择其中一种方式。但是C++响应用户社区的反馈(例如最成功的事物)而逐渐发展。向后兼容性的值完全压倒了由this
作为引用或指针引起的次要优点/缺点。