День добрый!
Нужно сделать аналог класса QThread, не использующий Qt. В общем, ничего сложного, но столкнулся с одной маленькой проблемой.
Имеем следующий код (пишу по памяти):
class TThread {
private:
static void *Start(void *Object);
protected:
virtual void Run() = 0;
publlic:
void TThread();
};
Метод Start объявляется в конструкторе как start_routine для создаваемого потока. Вид метода:
void * TThread::Start(void *Object)
{
((TThread *) Object)->Run();
return NULL;
}
Для проверки я сделал класс TMyThread, в котором определил метод Run(). Внимание вопрос: почему при выполнении программы на экран выводиться что-то вроде "Avoid to call pure virtual method" и происходит аварийное завершение работы. В чем я не прав?