现在有一个关于值拷贝的问题,类似于下面
Node* node = Node::create();
node->setTag(100);
Node* node2 = node;
node2->setTag(101);
int nTag = node->getTag();
我希望获取到的tag值为100,但是实际上为101,求大神告诉小白一下,为什么不行,和该怎么做。
谢谢!
Node *node2 =node, 意味着两个指针都指向同一个NODE的,无论你操作node还是node2,都是操作同一个对象。
楼主好好看看C++里面指针相关的内容。
如果要新建一个NODE,应该这样写:
Node *node2 = Node:create()
这样才是创建了一个新的节点。
但是我希望node2获得node的全部信息,并且改变node2的部分内容,使得node不受影响,就是想得到node的cope(),请问怎么做?
Node *node2 = Node:clone();
太佩服楼主了 基础不搞好就搞这个 以后大厦倒了都不知道怎么回事
Node *node2 = Node:clone(); 、
??有这个方法吗??
其实我问的就是关于数据的拷贝,我希望能node2拷贝node的内容,而不是指针地址,所以希望大家讲解
现在感觉好像解决了
struct sNode
{
int tag;
};
sNode* node = new sNode();
sNode* node2 = new sNode();
*node = node2;
node->tag = 1;
node2->tag = 2;
int nTag1 = node->tag;
int nTag2 = node2->tag;
这样的nTag1 = 1,nTag2 = 2。 ^_^!!!
但是是cocos2dx禁止cocos2dx的对象运行如node = *node2这样的代码吗??
不是Cocos2d-x禁止。。。是Cocos2d-x没有重载赋值运算符。
该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。