如题啊
一般来说,只要 a = b 这种形式即可。
不过,你可能需要深层拷贝,当结构体里面有指针的时候。
============================================================================
提问题时标题要简明扼要地说明问题内容,切忌使用"急","求救"之类不能说明问题的标题
http://www.betajin.com/alphasun/index.htm 给我发信息请附带原帖地址
http://alphasun.18en.com/ http://shakingtoolkit.9126.com/
DocWizard C++程序文档自动生成工具 | Wave OpenGL | HttpProxy | AjaxParser词法分析
memcopy
内存拷贝
memcpy
假如:
struct Stack{
int num;
Stack(int a=0):num(a){};
};
void main()
{
Stack a(100);
Stack * b;
b=new Stack;
memcpy((void*)b,(void*)&a,sizeof(Stack));//memcpy函数在memory.h
cout<<b->num;
delete b;
}
sturct SS...
SS ssa;
SS ssb;
memcpy(&ssa, &ssb, sizeof(SS));
重载 operator=
这个可能和你的结构成员有关,如果你的结构里面有指向别的成员的指针的话,就要进行深考贝了!
也就是结构里指针所指的资源也要进行COPY,而不仅仅是COPY其指针地址!见意看一下C++里面的深拷贝概念!
例如你有一个结构 struct data{ int*m,in n}
有一个变量data example;
example.n=5,int *k=new int;*k=100;example.m=k;
有另一个变量 data example1;
如果你只是example1=example;
那么example.m和example1.m只是同时指向一块内存,当你delete其中一个时,那么另一个也随之
deleted了!所以此时要复制的话就要这样:example1.m=new int ;
memcpy(example1.m,example.m);