Ничего не понимаю..
От: Аноним  
Дата: 14.09.05 15:52
Оценка:
Почему не работает этот код???????

class Base
{
    virtual void run() = 0;
    static UINT WINAPI start( void *pObj );
    void Start();
};

void Base::start(void * pObj)
{
    Base * pBase = (Base*)pObj;
    pObj->run();                       // Вот на этом падает в run-time с сообщением 'pure virtual function called'  
}

void Base::Start()
{
    unsigned tid;    

    _beginthreadex(
                    NULL,   // security attributes
                    0,      // use default stack size
                    start,  // thread function
                    this,   // argument list
                    0,      // start running
                    &tid    // out: thread id
                );
}

class Derived : public Base
{
    void run(){}
};

// где-то в main():
   Derived d;
   d.Start();


Чего-то я совсем запутался — разве не должна вызваться Derived::run() ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.