Methodenaufruf mit -> und .

12/01/2010 - 00:21 von Markus Grob | Report spam
Hallo

Ich finde mit den Argumenten -> und . im Google auch mit methodenaufruf
und qt keine schlaue Erklàrung, warum es -> und . gibt:
...
QWidget window;
...
window -> show() // funktioniert
window.show() // funktioniert nicht

Wenn ich den Compiler richtig verstehe, wird show() vererbt und ist
nicht direkt Teil von QWidget und kann daher nicht mit window.show()
angesprochen werden, oder wo ist der Unterschied?

Gruss, Markus
 

Lesen sie die antworten

#1 Thomas Rachel
12/01/2010 - 07:55 | Warnen spam
Am 12.01.2010 00:21, schrieb Markus Grob:
Hallo

Ich finde mit den Argumenten -> und . im Google auch mit methodenaufruf
und qt keine schlaue Erklàrung, warum es -> und . gibt:

QWidget window;

window -> show() // funktioniert
window.show() // funktioniert nicht



Das ist weniger eine Frage von KDE als eine Frage der zugrundeliegenden
Sprache. C++ hat das von C übernommen, wo es das (bei structs) auch
schon gibt:

struct test {
int a;
char b;
}

struct test s1;
struct test * s2;

void test(void)
{
s.a = s2 -> a;
s2 -> b = s.b;
}

. ist also ein Zugriff auf die Struct selbst, -> ein Zugriff mit
Pointerdereferenzierung.

Wenn man so will, ist s2->b die Kurzschreibweise von (*s2).b .

Hinweis: Hiermit wurd nur das Prinzip demonstriert; lauffàhig ist das
Dingens nicht.

HTH,


Thomas

Ähnliche fragen