1.拷贝的分类:深拷贝和浅拷贝
2.深拷贝和浅拷贝的介绍
(1)深拷贝:自己实现的拷贝构造函数,对于栈上的对象直接进行赋值,对于堆上的对象,另外开辟一块内存并将其资源复制到我新开辟的一块内存上。不会产生资源泄漏问题。
(2)浅拷贝:类默认实现的拷贝构造,只是将所有成员的值拷贝到我身上。容易产生资源泄漏问题。
下面我们通过一段简短的代码理解深拷贝与浅拷贝。
usingnamespacestd; classA{ public: A(constA&a) { this->a_=a.a_; // 普通成员直接赋值b_=newint; *b_=*a.b_; // 堆上的成员需要额外分配内存 } private: inta_=10; int*b_=newint{ 20 }; }; intmain(void) { return0; }