Я вижу две возможности здесь.Если у вас есть данные, которые, как вы знаете, представляют целевой тип, вы можете использовать reinterpret_cast
, чтобы обработать их как объект этого типа:
MyObject *obj = reinterpret_cast<MyObject *>(bytes);
Если вы хотите создать объект указанного типа в указанной памяти, вы используете оператор placement new
для создания объекта по указанному адресу:
char *bytes = whatever;
MyObject *obj = new(bytes) MyObject;
Когда вы закончите использовать объект, вы не delete
это, вы напрямую вызываете dtor:
obj->~MyObject();
Обратите внимание, что для этого нужно убедиться, что (если ничего больше) bytes
указывает на данные, которые правильно выровнены для целевого типа.