2010-01-29 4 views
10

Warum ist der Zeiger this in C++ ein Zeiger und keine Referenz?Warum ist der Zeiger "this" in C++ ein Zeiger und keine Referenz?

Gibt es Anwendungsfälle, die ich vermisse, die "das" als einen Zeiger nützlicher als eine Referenz machen?

Wenn nicht, gibt es irgendwelche Implikationen/Überlegungen zum Sprachdesign, die darin bestehen, dass es ein Zeiger ist?

+0

Gewählt, um wieder zu öffnen. Wie bereits gesagt, hat die Frage eine eindeutige Antwort - die von James McNellis gepostet wurde. –

+0

@KeithThompson, ich denke, die Leute sind zu schnell, um eine Frage zu beenden, von der sie denken, dass sie nicht beantwortet werden kann. Wenn Sie hier ein kostenloses Hochladen für ein anderes anbieten möchten, dann ist dies: http://stackoverflow.com/questions/13652006/why-accessing-to-class-variable-from-within-the-class-needs-self-in-python –

Antwort

19

Von Bjarne Stroustrup's C++ Style and Technique FAQ:

Warum ist "dies" keine Referenz?

Weil "dies" in C++ eingeführt wurde (wirklich in C mit Klassen) bevor Referenzen hinzugefügt wurden. Außerdem habe ich "dieses" gewählt, um Simula zu verwenden, anstatt die (spätere) Smalltalk-Verwendung von "self".