Кто-нибудь знает какой-нибудь трюк, который я мог бы использовать, чтобы сохранить класс Derived до тех пор, пока не будет вызван деструктор базового класса?
т.е.уничтожен, тогда базовый класс будет уничтожен.
Причина, по которой мне нужно что-то вроде этого, в том, что у меня есть собственный класс Event (сигнал / слот).
Класс Event предоставляет класс Observer.
Если я определяю:
class A : public Event::Observer
, а затем удаляю экземпляр класса A, когда ~ Observer автоматически удаляет любой сигналподключен к этому наблюдателю.
Но поскольку класс A уничтожается перед наблюдателем, если что-то в другом потоке вызывает слот на A после ~ A и до вызова ~ Observer.Все идет к черту ...
Я всегда могу вызвать метод Observer.release из ~ A, который решает проблему синхронизации.Но было бы чище, если бы мне это не понадобилось.
Есть идеи?