001
06.09.2006, 11:58 Uhr
0xdeadbeef
Gott (Operator)
|
Ich nehme an, du meinst eher
C++: |
class klasse { // ... public: klasse *gibwert(); };
// ...
klasse *klasse::gibwert() { return this; }
|
...dann klappts auch mit dem Compiler. gibwert ist in diesem Fall eine Methode, die einen Pointer auf ein Element des Typs Klasse zurückgibt, und in diesem Fall gibt sie this zurück - also die aufgerufene Klasse selbst. Damit sind in folgendem Beispiel:
C++: |
klasse foo; klasse *p = foo.gibwert(); klasse *q = &foo;
|
p und q das Selbe.
Was *this angeht, das dereferenziert den Zeiger, z.B.
C++: |
class klasse { // ... public: klasse &gibwert(); };
// ...
klasse &klasse::gibwert() { return *this; }
// ...
klasse foo; klasse &r = foo.gibwert(); klasse &s = foo;
|
Hier sind dann r und s das Selbe, nämlich Referenzen auf foo. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |