Perhaps Bjarne Stroustrup believed (believes?) that it would be common to set some other pointer equal to the
this pointer. I could see where this would make sense in a linked list (say somewhere:
head = this;). If
this were a reference, you would have to take the address of it with the ampersand operator. Since references are declared with
type&, taking the address of a reference just seems unnatural. People are quite accustomed to dereferencing pointers though.
Update: Mon Feb 12 2003
In light of the writeups by swmcd and DrPizza, I realize that my argument is not the reason that
this was originally a pointer. However, I still believe it's a valid argument for why (in addition to backwards compatibility and other reasons) it remains a pointer. Taking the address of a reference is just contrary to the idea behind references. If I didn't think so, I would've requested this writeup be removed.