USING_NS_CC的理解

USING_NS_CC的理解,第1张

概述打算在HelloWord中要添加一个精灵随鼠标拖动的功能。首先在HelloWord.h文件中加入如下代码:        //在这里我们定义一个精灵指针。        CCSprite*   m_pSprite;        首先,编译的时候,VS编译不通过,查看编译信息,如下所示:        是说在*前,缺少“;”,首先怀疑是CCSprite没有其定义文件,打开cocos2d.h文件,我

打算在HelloWord中要添加一个精灵随鼠标拖动的功能。首先在HelloWord.h文件中加入如下代码:

//在这里我们定义一个精灵指针。

CCSprite* m_pSprite;

首先,编译的时候,VS编译不通过,查看编译信息,如下所示:


是说在*前,缺少“;”,首先怀疑是CCSprite没有其定义文件,打开cocos2d.h文件,我们可以看到如下代码:

//sprite_nodes

#include "sprite_nodes/CCAnimation.h"

#include "sprite_nodes/CCAnimationCache.h"

#include"sprite_nodes/CCSprite.h"

#include "sprite_nodes/CCSpriteBatchNode.h"

#include "sprite_nodes/CCSpriteFrame.h"

#include "sprite_nodes/CCSpriteFrameCache.h"

说明,我们有添加精灵类的头文件。

由于无法找出错误原因,因此我直接在HelloWord.cpp文件定义CCSprite和添加其 *** 作代码,发现又通过了。于是,我认定是在头文件和cpp的开头部分有出入,查看头文件开头部分,如下:

#ifndef __HELLOWORLD_SCENE_H__

#define __HELLOWORLD_SCENE_H__

#include "cocos2d.h"

Cpp文件开头部分如下:

#include "HelloWorldScene.h"

USING_NS_CC;

二者不同点就在于在cpp文件有使用了coco2d命名空间,在头文件加入USING_NS_CC;重新编译,就通过了。那么USING_NS_CC是干嘛用的呢;

我们看USING_NS_CC的宏定义,可以看到:

#ifdef__cplusplus

#defineNS_CC_BEGINnamespacecocos2d {

#defineNS_CC_END }

#defineUSING_NS_CCusingnamespacecocos2d

#else

#defineNS_CC_BEGIN

#defineNS_CC_END

#defineUSING_NS_CC

#endif

发现所谓的就是使用了cocos2d的命名空间。查看维基百科定义命名空间的定义:表示标识符(IDentifIEr)的可见范围。一个标识符可在多个命名空间中定义,它在不同命名空间中的含义是互不相干的。这样,在一个新的命名空间中可定义任何标识符,它们不会与任何已有的标识符发生冲突,因为已有的定义都处于其它命名空间中。

但我们为什么要在代码中加入呢,我们已经导入了CCSprite.h文件!查看代码,我们可以看到如下代码:

#ifndef__SPITE_NODE_CCSPRITE_H__

#define__SPITE_NODE_CCSPRITE_H__

#include"base_nodes/CCNode.h"

#include"CCProtocols.h"

#include"textures/CCTextureAtlas.h"

#include"ccTypes.h"

#include"cocoa/CCDictionary.h"

#include<string>

#ifdefEMSCRIPTEN

#include"base_nodes/CCGLBufferednode.h"

#endif// EMSCRIPTEN

NS_CC_BEGIN

可以看到中同样使用命名空间,NS_CC_BEGIN宏定义是“namespacecocos2d {”表示一下代码是在“cocos2d”空间定义的。如果我们要使用CCSprite.h内的任何数据,都必须使用cocos2d空间, 即using namespace cocos2d,就是USING_NS_CC。

当然我们可以在前面直接使用空间名,也可以在定义地方加入空间名,比如这样定义:

//在这里我们定义一个精灵指针。

cocos2d::CCSprite* m_pSprite;

原文地址:http://blog.csdn.net/dionysos_lai/article/details/19401777

总结

以上是内存溢出为你收集整理的USING_NS_CC的理解全部内容,希望文章能够帮你解决USING_NS_CC的理解所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1045393.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存