У меня есть что-то вроде структуры
struct
{
struct bar x;
}foo
struct
{
DWORD count;
MyType* arr;
}bar
Теперь я хочу сделать глубокую копию экземпляра foo
Я смотрю на функцию из MSDN (http://msdn.microsoft.com/en-us/library/windows/desktop/aa366535(v=vs.85).aspx) называется
void CopyMemory(
In PVOID Destination,
In const VOID *Source,
In SIZE_T Length
);
Хотя я не думаю, что это сделает глубокую копию для меня, что будет хорошим способом сделать безопасную глубокую копию в этом случае?
Я бы предложил создать функцию конструктора копирования, в которой вы будете назначать каждую переменную из исходного объекта в целевой объект. Для указателей используйте new
Ключевое слово для выделения памяти для хранения объекта, а не просто для копирования адреса объекта.
Для получения дополнительной информации о конструкторе копирования обратитесь к http://www.tutorialspoint.com/cplusplus/cpp_copy_constructor.htm
Других решений пока нет …