深拷贝和浅拷贝的优缺点
看了深拷贝,浅拷贝优缺点,我们知道浅拷贝效率高,但涉及到指针引用等会涉及到指针的多次释放导致悬挂指针。深拷贝,不会造成指针悬挂的问题,但会浪费空间以及效率较低的问题。
下面看下用到浅拷贝的情况:
#include <iostream>
using namespace std;
class A
{
public:
A(int _data) : data(_data) {}
A() {}
int getdata()
{
return data;
}
private:
int data;
};
int main()
{
A a(5), b = a; // 仅仅是数据成员之间的赋值
cout << "b的data值" << b.getdata();
return 0;
}
/*
这一句b = a; 就是浅拷贝,执行完这句后b.data = 5;
如果对象中没有其他的资源(如:堆,文件,系统资源等),则深拷贝和浅拷贝没有什么区别,
但当对象中有这些资源时,例子:
*/
如果对象中没有其他的资源(如:堆,文件,系统资源等)