深拷贝与浅拷贝
1.浅拷贝
简单的赋值拷贝操作
如果利用编译器提供的拷贝构造函数,会做浅拷贝操作
浅拷贝带来的问题就是堆区的内存重复释放
解决办法是深拷贝
// 浅拷贝
Person(const int &p){
m_Age = p.m_Age;
m_Height = p.m_Height // 编译器默认实现的代码,采用的是浅拷贝
}
2.深拷贝
在堆区重新申请空间,进行拷贝操作
Person(const int &p){
m_Age = p.m_Age;
m_Height = new int(*p.m_Height); // 深拷贝操作
}

浙公网安备 33010602011771号