SeqStack s;
SeqStack s1(10);
SeqStack s2=s1;
//SeqStack s2(s1)
拷贝构造:
浅拷贝:会把s1的数据字段复制到s2之中(拷贝对象内存),当析构 s2对象的时候,会把2者共指向的内存删除掉,当s1想析构的时候,会找不到内存。因此,易报错!(会析构2回,但是最后一次就报错了)
所以,最好使用深拷贝
直接内存数据拷贝: 浅拷贝
涉及到
默认拷贝构造函数SeqStack s2=s1; ===>写自定义拷贝构造函数
默认赋值函数 s2=s1
.data 程序开始构造,程序结束析构
stack 函数开始构造,函数结束析构
heap 自己new 自己delete
OOP中拷贝内存对象,只用for循环,不用memcpy()
for(int i=0;i<_size;i++)
{
ptmp[i] = _pstack[i];
}
浅拷贝不出错可以使用深拷贝
参考:
施磊老师初级C++课程03