可能重复:
Why ‘this’ is a pointer and not a reference?
SAFE Pointer to a pointer (well reference to a reference) in C#
C ++中的this
关键字获取指向我当前对象的指针。
我的问题是为什么this
的类型是指针类型而不是引用类型。
是否有this
关键字为NULL
的条件?
我的直接想法是静态函数,但Visual C ++至少足够聪明,可以发现并报告static member functions do not have 'this' pointers
。这是标准吗?
答案 0 :(得分:16)
请参阅Stroustrup的Why is this
not a reference
因为在添加引用之前,“this”被引入到C ++中(实际上是带有Classes的C语言)。另外,我选择“this”来跟随Simula的使用,而不是(后来)Smalltalk使用“self”。
答案 1 :(得分:3)
因为直到稍后才将引用添加到C ++中。到那时为时已经太晚了。
答案 2 :(得分:0)
(可能不是一个完整的答案) 当对象需要使用“危险”
删除自身时,总会出现这种情况delete this;
所以它可能必须是一个指针。
微米。