c++的深拷贝和浅拷贝

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值