Exception bei Thread

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
july
Beiträge: 21
Registriert: 9. September 2010 13:19

Exception bei Thread

Beitrag von july »

Hallo,
ich hab ein Problem beim aufrufen des Threads.

void MainWindow::tStartButtonHandler() {
Thread th = new Thread(mManipulator, ui.tableWidget);
th.start();
}

Bei dem Aufruf kommt eine Exception: "Umwandlung von "Thread" in nicht-skalaren Typen "Thread" angefordert". Wisst ihr vielleicht, was damit gemeint ist?
Dateianhänge
thread.C
(1.68 KiB) 190-mal heruntergeladen
thread.h
(629 Bytes) 188-mal heruntergeladen
Alohis
Beiträge: 4
Registriert: 26. August 2010 08:53

Beitrag von Alohis »

Code: Alles auswählen

Thread *th = new Thread(mManipulator, ui.tableWidget); 


Probiers mal mit nem Pointer.
Zuletzt geändert von Alohis am 10. September 2010 10:53, insgesamt 2-mal geändert.
july
Beiträge: 21
Registriert: 9. September 2010 13:19

Beitrag von july »

ich arbeite auch mit Pointern: mManipulator und ui.tableWidget sind Pointer
Und wenn ich Thread *th mache, bekomme ich eine Exception und kann nicht auf die th.start() zugreifen.
Alohis
Beiträge: 4
Registriert: 26. August 2010 08:53

Beitrag von Alohis »

Weil du natürlich bei einem Pointer nicht mehr über den Punkt Operator auf die methoden zugreifen kannst sondern über den Pfeil.

Code: Alles auswählen

void MainWindow::tStartButtonHandler() {
Thread *th = new Thread(mManipulator, ui.tableWidget);
th->start();
} 
july
Beiträge: 21
Registriert: 9. September 2010 13:19

Beitrag von july »

jetzt bekomme ich aber:

debug/moc_thread.o:(.rodata._ZTV6Thread[vtable for Thread]+0x14): undefined reference to `Thread::~Thread()'
make[1]: Leaving directory `/localhome/demo/QT-Projects/QtArmFinal'
debug/moc_thread.o:(.rodata._ZTV6Thread[vtable for Thread]+0x18): undefined reference to `Thread::~Thread()'
collect2: ld gab 1 als Ende-Status zurück
make[1]: *** [QtArmFinal] Fehler 1
make: *** [debug] Fehler 2
july
Beiträge: 21
Registriert: 9. September 2010 13:19

Beitrag von july »

hab ich jetzt auch gefixt, danke
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Das was du als "Exception" bezeichnest sind Fehler von Compiler bzw. Linker. Eine Exception ist ganz was anderes! Das ist eine Ausnahme zur Laufzeit. Eine Exception wirft man, und will man auf eine solche reagieren, fängt man diese mit "catch" im Code.
Lies dir das am besten nochmal durch im Buch deiner Wahl :)
Antworten