在Cocos2d中每一个类都使用了USING_NS_CC,真是好神奇的样子。
那USING_NS_CC究竟是干什么用的呢?于是我去查阅了资料。
看看USING_NS_CC的宏定义:
#ifdef __cplusplus
#define NS_CC_BEGI namespace cocos2d {
#define NS_CC_EN }
#define USING_NS_CC usingnamespace cocos2d
#else
#define NS_CC_BEGIN
#define NS_CC_END
#define USING_NS_CC
#endif
通过USING_NS_CC的宏定义不难看出,USING_NS_CC其实就是使用了Cocos2d的命名空间-_-
命名空间的定义:表示标识符(identifier)的可见范围。一个标识符可在多个命名空间中定义,它在不同命名空间中的含义是互不相干的。这样,在一个新的命名空间中可定义任何标识符,它们不会与任何已有的标识符发生冲突,因为已有的定义都处于其它命名空间中。
而要使用有关Cocos2d的头文件里的任何数据,就必须定义Cocos2d空间,即using namespace cocos2d,也就是USING_NS_CC!