Я думаю, что проблема в линиях броска.Кстати, если вы удалите приведенный вами актерский состав, компилятор точно скажет вам, в чем проблема.
Если вы действительно хотите сделать это, и я настоятельно рекомендую вам сначала создать временный код:
ConcreteTwo* object = new ConcreteTwo();
InterfaceClass* ptr = object;
тогда вы можете взять его адрес и присвоить его переменной ptrptr
:
InterfaceClass** ptrptr = &ptr;
теперь вы можете безопасно удалить его:
delete *ptrptr;
Учитыватьчто если ptr
выйдет из области видимости до ptrptr
, удаление, вероятно, снова завершится сбоем.
В остальном Ной объясняет, почему ваш код не работает.