【发布时间】:2013-10-22 00:58:14
【问题描述】:
我有一个类似这样的结构
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
);
虽然我认为这不会为我做一个深拷贝,但在这种情况下,做一个安全的深拷贝的好方法是什么?
【问题讨论】:
-
如果您使用 C++,只需为
bar定义一个复制构造函数。毕竟,正确遵守三法则是责任。更好的是,将bar替换为std::vector<MyType>,因为这个轮子已经被发明出来了。
标签: c++ visual-c++ c++11 copy deep-copy