我正在阅读C++ pros and cons这个问题的答案,并且在阅读评论时有这个疑问。

我的问题是,为什么this指针不是引用?使其成为指针有任何特殊原因吗?

为什么this作为引用会更有意义:

  • 考虑Item 1中的More Effective C++ :在确保我们有一个有效的对象(即非NULL(我的解释))时使用引用。
  • 此外,引用被认为比指针更安全(因为我们无法使用流浪指针来破坏内存)。
  • 第三,访问引用(.)的语法比访问指针(->(*))更好一些,也更短。
  • 最佳答案

    当该语言首次发展时,在具有实际用户的早期版本中,没有引用,只有指针。添加运算符(operator)重载时添加了引用,因为它要求引用保持一致。
    this的用途之一是使对象获得指向自身的指针。如果是引用,则必须编写&this。另一方面,当我们编写赋值运算符时,我们必须使用return *this,它看起来比return this更简单。因此,如果您有空白,您可以选择其中一种方式。但是C++响应用户社区的反馈(例如最成功的事物)而逐渐发展。向后兼容性的值完全压倒了由this作为引用或指针引起的次要优点/缺点。

    09-09 23:17
    查看更多