cocos2d x-cocos2d-x中的成员变量与局部变量的选用

问题描述

cocos2d-x中的成员变量与局部变量的选用

当类中一个方法需要调用另外一个方法(比如init方法)中的CCObject(比如CCSprite)变量是为什么大都选用getChildByTag的方法来调用,而不是直接把这个变量定义为类的成员?
例:
常用的方法
class A
{
void init();
void func();
}
void A::init()
{
CCSprite * spr = CCSprite::create("picture.png");
...
this->addChild(spr,0,1);
}
void A::func()
{
CCSprite * temp = this->getChildByTag(1);
temp->runAction(...);
...
}
为什么不使用以下方法:
class A
{
void init();
void func();
CCSprite * spr;
}
void A::init()
{
spr = CCSprite::create("picture.png");
...
this->addChild(spr,0);
}
void A::func()
{
spr->runAction(...);
...
}

解决方案

这样做两个都能达到同样的效果,但是您所用方法没有前者安全。
可以看看C++语法类成员的介绍。
使用GetChildByTay()的方法是相对安全的方法。

时间: 2024-08-17 21:20:31

cocos2d x-cocos2d-x中的成员变量与局部变量的选用的相关文章

封装-java中 关于成员变量public权限的意义

问题描述 java中 关于成员变量public权限的意义 类为了封装 应该都已经讲成员变量设为private权限了 那public的意义是什么 好像看过一本c++的书 说语言发明者仅仅是为了操作简单 但是一直比较纠结 问问各位大神 解决方案 field只是不建议public,如果要public,请用方法或者属性,如果是const或者readonly的你可以考虑public出来,因为这些是不可变的

String类中的成员变量offset可以直接访问吗?

问题描述 String类中的成员变量offset可以直接访问吗? 第一次提问~今天在看String的字符串匹配实现,看到里面有个private的成员offset. /** The offset is the first index of the storage that is used. */ private final int offset; 完了之后再String的一个constructor中看到了这种访问 /** * Allocates a new string that contains

visual studio 2010-VS2010 MFC一个自定义类如何调用一个对话框类中的成员变量

问题描述 VS2010 MFC一个自定义类如何调用一个对话框类中的成员变量 我从一个对话框定义了几个CString类型的edit控件,我现在写一个类想调用该对话框中的创建的edit控件变量.怎么办啊 解决方案 字符串: getdlgitem(id)->getwindowtext() 数字 getdlgitemid(id) 解决方案二: 把那个对话框的CString变量变成public的,然后就可以直接用了,当然你需要先知道你那个对话框的指针. 解决方案三: 黑马程序员---定义一个包含私有成员变

在WinForm窗体中增加成员变量,是否需要增加构造函数?

问题描述 在WinForm窗体中增加成员变量,是否需要增加构造函数? 在WinForm窗体中定义全局成员变量,是否需要增加构造函数? 如果需要,是加在public Form1() {InitializeComponent(); }当中吗? 还是另外定义一个类,在public Form1() {InitializeComponent(); }中用new初始化? 解决方案 我觉得可以不用增加 public Form1(string field = null) { InitializeComponen

在C++中 怎么在派生类中使用基类中的成员变量 例如如下代码 怎样才能使其跑起来

问题描述 在C++中 怎么在派生类中使用基类中的成员变量 例如如下代码 怎样才能使其跑起来 #include using namespace std; class love{ public: char you() { int i=87, j=74 ,k=89; char a=char(i),b=char(j),c=char(k); return 0; } }; class Me:private love{ public: Me():l(a),u(b),n(c){} char const l,u,

c#-vs2010如何在监视窗口添加类中的成员变量?

问题描述 vs2010如何在监视窗口添加类中的成员变量? vs2010如何在监视窗口添加类中的成员变量?请指教咯......... 解决方案 直接输入变量名就行,debug运行情况,设断点停下来才能设置 解决方案二: 选中该成员变量,鼠标右键,添加监视不就行了

变量 属性-JAVA初始块中的变量与类中的成员变量区别

问题描述 JAVA初始块中的变量与类中的成员变量区别 class Demo{ { a = 4; } int a = 6; public static void main(String[] args){ System.out.println(new Demo().a); } } 两个a是同一个变量吗? 解决方案 是同一个变量. 初始化块中指定的变量a的初始值每次都会被定义时指定的变量a的值所覆盖,因为定义变量时指定的初始值和初始化块中指定的初始值的执行顺序,跟它们在源程序中的排列顺序相同. 详细可

java中成员变量与局部变量区别分析_java

本文实例分析了java中成员变量与局部变量区别.分享给大家供大家参考.具体分析如下: 成员变量:在这个类里定义的私有变量,属于这个类. 创建以及使用成员变量 复制代码 代码如下: public class Person {     String name;     String Sex;     int age;     double Height;         public static void main(String arges[])     {         Person p=ne

java中成员变量与局部变量的区别

成员变量与局部变量的区别 1.在类中的位置不同 成员变量:在类中方法外面 局部变量:在方法或者代码块中,或者方法的声明上(即在参数列表中) 2.在内存中的位置不同,可以看看 Java程序内存的简单分析 见 接下来我们再通过一段程序来直观感受下程序运行时JVM的内存情况, package demo; public class Student {     private String name;     private int age;     public void study() {