MyMessage * сохранено = Копировать (сообщение) ??? как я могу скопировать это?
Вы должны иметь возможность скопировать его с помощью конструктора копирования, учитывая, что он определен:
MyMessage saved(*msg); // If you like to have it on the stack,
// but will get destroyed as soon as you leave the scope.
// Preferred way unless MyMessage is big
MyMessage* saved= new MyMessage(*msg); // Could be auto instead of MyMessage*.
// We don't do this anymore on modern C++, you need a call to delete
auto saved= std::make_unique<MyMessage>(*msg); // This gets deleted automatically
// falling out of scope
Если у вас нет конструктора копирования, но есть оператор присваивания:
MyMessage saved;
saved= *msg; // Copy
MyMessage* saved= new MyMessage();
*saved= *msg; // Copy
auto saved= std::make_unique<MyMessage>();
*saved= *msg; // Copy
Учитывая, что эти два сбоя, если MyMessage является простой структурой (без указателей, без виртуальных), вы могли бы сделать:
MyMessage saved;
memcpy(&saved, msg, sizeof(MyMessage));
MyMessage* saved= new MyMessage();
memcpy(saved, msg, sizeof(MyMessage));
auto saved= std::make_unique<MyMessage>();
memcpy(saved.get(), msg, sizeof(MyMessage));