原创作品,转载请标明:http://www.jb51.cc/article/p-vogoytth-ep.html
CCObject在之前的文章中出现了N次,它扮演了一个老祖宗的角色,但是它到底是做什么的?先从它看看cocos2d-x的拷贝机制吧。
1.CCCopying
CCObject从CCCopying继承而来,而CCCopying拥有唯一的一个成员虚函数copyWithZone,这个函数可以认为是拷贝的一个协议,所有继承了CCObject并且需要实现拷贝功能的子类都可以通过它来实现,它的源码很简单,就是一个未实现的断言。CCZone是神马?只是封装了一个CCObject对象指针而已。
- CCObject*CCCopying::copyWithZone(CCZone*pZone)
- {
- CC_UNUSED_PARAM(pZone);
- CCAssert(0,"notimplement");
- return0;
- }
2.CCObject的子类拷贝问题
再看看CCObject中copy的实现,是的,直接调用了copyWithZone,所以子类在处理拷贝问题时只需要对copyWithZone进行实现,使用时调用copy即可。
copy