深拷贝与浅拷贝

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); // 深拷贝操作
}
posted @ 2022-02-14 17:30  SKIPSPUR_SUPER  阅读(34)  评论(0)    收藏  举报