首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++基础之4:深拷贝和浅拷贝

2013-09-12 
C++基础之四:深拷贝和浅拷贝1.普通类型对象的拷贝普通类型对象的拷贝很简单,就是的复制而已。比如:class CC

C++基础之四:深拷贝和浅拷贝
1.普通类型对象的拷贝

普通类型对象的拷贝很简单,就是值的复制而已。比如:

class CCopyTest{public:CCopyTest(int _size):size(_size){data=new int[size];}~CCopyTest(void){delete []data;}CCopyTest(const CCopyTest& _copy):size(_copy.size){data=new int[size];memcpy(data,_copy.data,size);}//自定义拷贝构造函数private:int size;int* data;};

这里还要注意一点,拷贝构造函数必须采用引用传参的方式,而不能采用值传参,因为值传参本身就要进行值拷贝,调用拷贝构造函数会引起无限循环嵌套,编译器会报错,栈溢出。VS和GCC中都会报错。


5.总结

总之,在对进行对象拷贝时,当对象包含对其他资源的引用,如果需要拷贝这个对象所引用的对象,那就是深拷贝,否则即是浅拷贝。





热点排行