3 回答
TA贡献1862条经验 获得超6个赞
当该语言第一次发展时,在具有实际用户的早期版本中,没有引用,只有指针。添加操作员重载时添加了引用,因为它需要引用才能一致地工作。
的用途之一this是使对象获得指向自身的指针。如果是参考,我们必须写&this。另一方面,当我们编写一个赋值运算符时,我们必须这样做return *this,它看起来更简单return this。因此,如果您的菜板空白,则可以选择其中任何一种方式。但是C ++逐渐发展以响应用户社区的反馈(例如最成功的事物)。向后兼容性的价值完全压倒了由于this作为参考或指针而产生的次要优点/缺点。
TA贡献1848条经验 获得超6个赞
因为在添加引用之前,“ this”已引入C ++(实际上是带有类的C)。另外,我选择“ this”来遵循Simula的用法,而不是(后来的)Smalltalk对“ self”的用法。
TA贡献1845条经验 获得超8个赞
C ++标准指出
9.3.2 / 1
在非静态(9.3)成员函数的主体中,关键字this是一个非左值表达式,其值是为其调用该函数的对象的地址。在类X的成员函数中,此类型为X *。如果将成员函数声明为const,则其类型为const X *;如果将成员函数声明为volatile,则其类型为volatile X *;如果将成员函数声明为const volatile,则其类型为const。易失X *。
但是在其他参考文献中,发现了其他东西。于是有人主动出击并给斯特劳斯特鲁普先生发了邮件。随后的对话可以在这里找到。
- 3 回答
- 0 关注
- 557 浏览
添加回答
举报
