In C++, why isn't the this keyword a reference?
Possible Duplicate:
Why ‘this’ is a pointer and not a reference?
嘿,伙计们,
有一个很好的理由,EDCOX1×0是指针,而不是C++中的引用吗?
- 副本:stackoverflow.com/questions/645994/…
- 汪汪,搜索时间不够长。
在参考概念出现之前,引入了this概念。当时,this必须是指针.source
来自stroustrup的常见问题解答
http://ww2.research.att.com/~bs/bs_faq2.html此
这听起来很疯狂,但实际上对delete this;是合法的。有时甚至有理由,但很少。
- 这不能解释为什么它是指针。(除非你暗示理由是delete this需要合法。)
- 你还是可以做delete &this。
- @你显然是对的,这不是理由。但我相信这与这个问题有关。
- @兹内克:那会比delete this更奇怪。:)
- 问题和答案都与this有关。但这就是问题所在,我不明白它与问题的内容有什么关系。的S
- 它是相关的,因为下一个逻辑问题是"作为指针的this允许我做什么?"
- @迪玛:嗯,不是真的。然后,每一个答案都与任何问题有关,通过"但你可以问"。你回答问题,而不是回答未分配/次要/猜测/想象的问题。大声读出来:"为什么this是指针?你可以1〔0〕!那么?不回答问题。
- @GMAN:请参阅Richard Corden对原始问题的回答(stackoverflow.com/questions/645994/…)。显然,我不是唯一一个认为这是一个相关点的人。
- @迪玛:指出有人做了同样的事,无论如何,不是对一个论点的反驳。一百万人说x不能使x正确,所以特别是一个人不能。
- 我们不是在讨论正确性,因为我在回答中所说的都是真的。我们正在讨论与这个问题的相关性,这个问题本质上是一个模糊的概念,是一个意见问题。我相信超越这个问题是完全合理和有用的。例如,当问题是关于动态分配数组时,您是否同意建议使用std::vector是完全合理的?
- @迪玛:正确的答案和回答"这是一个有效的答案,以张贴",而不是内容。我从来没有说过任何让你有理由得出这样的结论:正确地说,我的意思是答案的内容是真实的。你含蓄地说,"我发表这个答案是正确的,因为这个人做了",我指出这是一个谬论(广告人口,两个错误不构成一个正确,完全不相关);在上下文中,正确在这种情况下应该相当清楚地意味着"相关"。在任何情况下,如果你一开始就没有回答过一个问题,你就不能超越它。
- 你说得对,我应该在你的回答中加上关于delete this的点。;)