Seite 1 von 1
invalid use of 'this' in non-member func
Verfasst: 11. Februar 2007 16:09
von sea_bear
Moin moin!
Ich versuche im Hauptprogramm
Code: Alles auswählen
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
...
eine MessageBox anzeigen zu lassen.
Der Code sieht ungefähr so aus:
Leider bekomme ich immer die Fehlermeldung: invalid use of ‘this’ in non-member function
Was mache ich falsch, bzw. wie mache ich es richtig??
mfg
Tobias
Verfasst: 11. Februar 2007 16:12
von franzf
Die Meldung sagt doch schon alles:
int main() ist keine Member-Funktion einer Klasse

Daher kann this auch auf kein Objekt zeigen.
Nimm einfach mal 0. Vllt gehts dann
Grüße
Franz
Verfasst: 11. Februar 2007 16:19
von sea_bear
franzf hat geschrieben:
Nimm einfach mal 0. Vllt gehts dann
Grüße
Franz
wie sieht das als Code aus??
Tobias
Verfasst: 11. Februar 2007 17:04
von upsala
Verfasst: 11. Februar 2007 17:42
von sea_bear
Danke!!!!
Jetzt muss mir nur noch jemand erklären, warum ich mal
und mal
nehmen kann / muss!!
Tobias
Verfasst: 11. Februar 2007 17:56
von upsala
Du mußt gar nichts, du kannst jetzt immer statt this 0 verwenden. Das Ergebnis siehst du meist recht schnell. Ansonsten könntest du noch die Dokumentation zu QObject bzw. QWidget lesen. Dort ist der Parameter parent erklärt...
Verfasst: 11. Februar 2007 18:51
von Christian81
sea_bear hat geschrieben:
Jetzt muss mir nur noch jemand erklären, warum ich mal
und mal
nehmen kann / muss!!
Ich würde sagen Du beschäftigst Dich mal mit einem C++ - Buch. Das hier ist ein Forum für Qt und nicht für C++-Anfänger. Sorry.
Verfasst: 11. Februar 2007 19:46
von franzf
Christian81 hat geschrieben:Ich würde sagen Du beschäftigst Dich mal mit einem C++ - Buch. Das hier ist ein Forum für Qt und nicht für C++-Anfänger. Sorry.
Ich kann nur sagen:

Auch wenn es nicht korrektes C++ ist sondern nur im übertragenen Sinne passt

Verfasst: 11. Februar 2007 23:19
von webmaster1987
Also der Pointer this zeigt ja nur auf die Speicheradresse der aktuellen Klasse hat also relativ wenig mit 0 zu tun^^.
Das einzige was mit 0 gleichzusetzen ist ist NULL. NULL ist die Adresse des Ersten Speicherbereiches des Arbeitsspeichers, den wiederum kann man nicht überschreiben und deshalb ist NULL und 0 als Speicheradresse das gleiche.