In meinem Programm soll ein sehr großes Feld von unterschiedlichen Algorithmen sortiert werden. Damit die GUI aber währendessen nicht "einfriert" möchte ich die Sortieralgorithmen als Threads implementieren.
Dabei gehe ich wie folgt vor:
Ein Klasse namens "AbstractSorting" wird von "QThread" abgeleitet und die Sortieralgorithmen werden von "AbstractSorting" abgeleitet. "AbstractSorting" stellt ein paar Methoden für die Sortieralgorithmen zur Verfügung, sodass diese sich nicht mehr um alles kümmern müssen.
Das ganze ist wie folgt definiert und impelementiert:
AbstractSorting.h
Code: Alles auswählen
class <QThread>;
class AbstractSorting : public QThread
{
Q_OBJECT;
public:
AbstractSorting(int *field, int size, QWidget *parent=0);
virtual bool sort()=0;
protected:
void run();
...
}
Code: Alles auswählen
#include <QThread>
AbstractSorting::AbstractSorting(int *field, int size, QWidget * parent) : QThread(parent)
{
...
}
void AbstractSorting::run()
{
sort();
}
Code: Alles auswählen
#include "AbstractSorting.h"
class BubbleSort : public AbstractSorting
{
public:
BubbleSort(int *field, int size, QWidget *parent) : AbstractSorting(field, size, parent) { }
bool sort();
};
Code: Alles auswählen
bool BubbleSort::sort()
{
...
}Es folgen zwar noch andere, aber ich denke, dass diese erst mal die wichtigste ist, da sie als erste erscheint.In file included from src/BubbleSort.h:29,
from src/MainWindow.cpp:32:
src/AbstractSorting.h:38: error: base class `QThread' has incomplete type
Kann mir jemand helfen?
Ciao