-2

为什么this在 C++ 中被弃用?C++中的this指针与 Java 中的指针有何不同this

还是维基百科错了

早期版本的 C++ 允许更改 this 指针;通过这样做,程序员可以更改方法正在处理的对象。这个特性最终被弃用了,现在 C++ 中的 this 是 const 。

4

3 回答 3

17

我相信你的错误在于你如何解释那条线。他们并不是说“此功能已被弃用”。仅仅重新分配this指针的能力被弃用了。

于 2011-09-26T15:30:09.100 回答
6

根据您的编辑,维基百科的文章措辞不佳。this不推荐使用,只是不推荐使用允许this更改指针的功能。关键字this仍然存在。

来自Stroustrup 本人

为什么“这个”不是参考?

因为“this”在添加引用之前被引入 C++(实际上是带类的 C)。另外,我选择“this”来遵循 Simula 的用法,而不是(后来)Smalltalk 使用“self”。

于 2011-09-26T15:30:59.457 回答
6

你误解了报价。

早期版本的 C++ 允许更改 this 指针;通过这样做,程序员可以更改方法正在处理的对象。此功能最终被弃用,现在 C++ 中的const.

不推荐使用的是this——指针,而不是它指向的对象——是可变的。

this本身仍然非常活跃,具有 type prvalue T*。(GCC 暂时通过在当前的 GCC 4.7.0 中创建一个来模拟这一点。thisrvalue T* const

于 2011-09-26T15:30:44.193 回答