http://cn.cocos2d-x.org/tutorial/show?id=560
CCObject在之前的文章中出现了N次,它扮演了一个老祖宗的角色,但是它到底是做什么的?先从它看看Cocos2d-x的拷贝机制吧。
1.CCCopying
CCObject从CCCopying继承而来,而CCCopying拥有唯一的一个成员虚函数copyWithZone,这个函数可以认为是拷贝的一个协议,所有继承了CCObject并且需要实现拷贝功能的子类都可以通过它来实现,它的源码很简单,就是一个未实现的断言。CCZone是神马?只是封装了一个CCObject对象指针而已。
1
2
3
4
5
6
|
CCObject* CCCopying::copyWithZone(CCZone *pZone)
{
CC_UNUSED_PARAM(pZone);
CCAssert(0,
"not implement"
);
return
0;
}
|
2.CCObject的子类拷贝问题
再看看CCObject中copy的实现,是的,直接调用了copyWithZone,所以子类在处理拷贝问题时只需要对copyWithZone进行实现,使用时调用copy即可。
CCObject* CCObject::copy()
copyWithZone(0);
3.CCArray示例
|