【发布时间】:2011-04-24 22:30:01
【问题描述】:
所以我在 c++ 中有一个指针对向量:
vector<pair<Move *,Piece *> > moveList;
其中 Move 是一个对象,而 Piece 是一个对象... Piece 有类变量 type 和 side
所以我在 moveList 中添加了一些东西:
pair <Move *, Piece *> pr (&m,&(p));
moveList.push_back(pr);
其中 m 是 Move 对象,p 是 Piece 对象
但是每当我调用 moveList.back() 方法时,由于某种原因它会修改 Piece 的值
我是这样的
Move * j = moveList.back().first;
Piece 应该将其“type”变量的值设置为 'X'
但是当我调试时,结果是在上面一行之后,出于某种原因,Piece 的“类型”变量的值被设置为一些疯狂的数字,例如 -56 '\310'.....
我做错了什么?
编辑
moveList 也设置为类变量
并在该类中的不同方法上完成了对 moveList 的推入和 moveList 的返回()操作
【问题讨论】:
-
m和p之类的声音是在堆栈上创建的,而不是new,现在它们超出了范围。 -
发布更多代码。尤其是 m 和 p 的声明。
标签: c++ pointers vector reference