您的位置:首页 > 编程语言 > C语言/C++

c++的深拷贝和浅拷贝

2016-04-28 11:39 330 查看
c++中深拷贝和浅拷贝的出现时因为他多了指针和引用的概念 本质就是对别的资源的引用 即指向改资源的内存地址

在一般没有指针或者引用的对象的拷贝的时候浅拷贝就够了,如果多了指针或者引用的属性的时候就涉及到深拷贝了 ,手动设定拷贝函数,开辟一样大小的内存空间,

CCopyTest(const CCopyTest& _copy):size(_copy.size){data=new int[size];memcpy(data,_copy.data,size);}//自定义拷贝构造函数

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

cocos2dx中,CCCopying定义只是定义了一个copy 拷贝的接口 具体的实现需要子类去实现,ccobject 实现了对象id的引用计数,唯一id

之后研究的是ccnode
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: