Android cocos2D-x中CC_REF_PTR_SAFE_RETAIN和CC_SAFE_RETAIN之间的差异

Android cocos2D-x中CC_REF_PTR_SAFE_RETAIN和CC_SAFE_RETAIN之间的差异,android,c++,cocos2d-x,Android,C++,Cocos2d X,cocos2D-x中CC_REF_PTR_SAFE_RETAIN和CC_SAFE_RETAIN的区别是什么?什么时候使用它们?CC\u-REF\u-PTR\u-SAFE\u-RETAIN允许在const-cocos2d::REF*对象上调用RETAIN(),而CC\u-SAFE\u-RETAIN仅用于非constcococos2d::REF*对象 例如 cocos2d::Ref*obj=; 常数cocos2d::Ref*kObj=; CC_SAFE_RETAIN(obj);//好啊 CC_SAF

cocos2D-x中CC_REF_PTR_SAFE_RETAIN和CC_SAFE_RETAIN的区别是什么?什么时候使用它们?

CC\u-REF\u-PTR\u-SAFE\u-RETAIN
允许在
const-cocos2d::REF*
对象上调用
RETAIN()
,而
CC\u-SAFE\u-RETAIN
仅用于非
const
cococos2d::REF*对象

例如

cocos2d::Ref*obj=;
常数cocos2d::Ref*kObj=;
CC_SAFE_RETAIN(obj);//好啊
CC_SAFE_RETAIN(kObj);//成员函数“retain”不可行:“this”参数的类型为“const cocos2d::Ref”,但函数未标记为const
CC_REF_PTR_SAFE_RETAIN(obj);//好啊
CC_REF_PTR_SAFE_RETAIN(kObj);//好啊

您使用的是什么版本的cocos2d-x?我找不到
CC\u REF\u PTR\u SAFE\u RETAIN
…我正在使用cocos2d-x v3.2。。。搜索声明CC_SAFE_RELEASE的标题,您将找到其他标题。(CCRefPtr.h)谢谢:)
cocos2d::Ref* obj = <some object>;
const cocos2d::Ref* kObj = <some constant object>;
CC_SAFE_RETAIN(obj); // OK
CC_SAFE_RETAIN(kObj); // Member function 'retain' not viable: 'this' argument has type 'const cocos2d::Ref', but function is not marked const
CC_REF_PTR_SAFE_RETAIN(obj); // OK
CC_REF_PTR_SAFE_RETAIN(kObj); // OK