本文共 798 字,大约阅读时间需要 2 分钟。
【答案】
如果一个类拥有资源,当这个类的对象发生对象发生复制过程的时候,这个过程就可以叫做深复制,如果对象存在资源但在复制过程中并未复制资源就是浅复制。
【解析】
浅复制如下:
class Test{public: Test(int temp) { p=temp; } Test(Test &c_t)//自定义的拷贝构造函数 { cout<<"进入copy构造函数"<
深复制又称为深拷贝,对于对象中的动态成员,就不仅仅是简单的赋值了,而是重新动态分配空间。
深复制的示例代码如下:
class Rect{public: Rect()//构造函数,p指向堆中分配空间 { p=new int(100); } Rect(const Rect &r) { width=r.width; height=r.height; p=new int;//为新对象重新动态分配空间 *p=*(r.p); } ~Rect()//析构函数,释放动态分配空间 { if(p!=NULL) { delete p; } }private: int width; int height; int *p;};
--
转载地址:http://jwwab.baihongyu.com/