C++-Ansage #1
Verfasst: 07.02.2011, 22:48
Ein wenig unnützes Wissen:
Wann immer gefragt wird, warum this in C++ ein Zeiger ist – und keine self-Referenz – wird darauf verwiesen, dass this vor Referenzen in C++ eingeführt wurde. Was ich aber nie lese ist, dass eine self-Referenz einen handfesten Nachteil hätte: Da C++ die Überladung des Addressoperators & erlaubt, könnte man mit einer Referenz in Situationen kommen, in denen es unmöglich wäre, die reale Adresse eines Objekts zu bestimmen, sogar von dem Objekt selber aus:Jeder Versuch der Klasse, ihre echte Adresse zu erfahren, würde zwangsläufig in einem &self und damit in nullptr münden. In dem konkreten Beispiel ist das Nonsens; es gibt jedoch Situationen – Wrapper seien eine – in denen es sinnvoll ist, & daraufhin zu überladen, die Adresse eines Attributs statt des Objekts selber zurückzugeben. Solche Objekte würden ohne Möglichkeit eines this-Zeigers unantastbar.
Gruß, Ky
Wann immer gefragt wird, warum this in C++ ein Zeiger ist – und keine self-Referenz – wird darauf verwiesen, dass this vor Referenzen in C++ eingeführt wurde. Was ich aber nie lese ist, dass eine self-Referenz einen handfesten Nachteil hätte: Da C++ die Überladung des Addressoperators & erlaubt, könnte man mit einer Referenz in Situationen kommen, in denen es unmöglich wäre, die reale Adresse eines Objekts zu bestimmen, sogar von dem Objekt selber aus:
Code: Alles auswählen
class NullAddressObject {
public:
void * operator & () {
return nullptr;
}
};
Gruß, Ky