В основной теме создайте свой объект в бесплатном магазине, используя new
:
mybaseclass* local = new childclass;
... будучи уверенным, что не используйте интеллектуальный указатель, так какумный указатель уничтожит объект, когда он выйдет из области видимости.Передайте указатель на ваш рабочий поток с помощью любых средств, которые вы используете, а затем, когда ваш рабочий поток закончил, удалите его:
mybaseclass* thread_local = SomehowGetTheObject();
// MAGIC HAPPENS...
delete thread_local;
Кроме того, если вы передаете базовые указатели производным классам,уверен, что у вашего базового класса есть деструктор virtual
.