C++ Visual Studio 2010对局部变量的不稳定报告
在我的一个名为MoveMethod的对象中,我有三个TileGridArea,这是我创建的一个数据结构,用于存储相对于特定原点的列-行对 TileGridArea的操作非常基本,在本项目的许多其他领域中都可以正常工作,但是当我在MoveMethod中通过指针引用它们时,这些更改并没有正确显示,因此它会破坏我试图完成的所有寻路工作 我在第25-27行初始化构造函数中的三个 并在第2行的previewPath上执行第一个操作编辑:似乎只允许2个显式链接(http://codepad.org/wXxBL7nb) 它正确地读取previewPath为空,因此在第5行执行addMember函数。我在debug中已经详细介绍了它,没有理由不让它工作,但是当它从addMember函数返回到外部函数时,快速查看一下显示,无论出于何种任意原因,它决定不添加到previewPath,而是添加到可能的DestinationsC++ Visual Studio 2010对局部变量的不稳定报告,c++,visual-studio,debugging,C++,Visual Studio,Debugging,在我的一个名为MoveMethod的对象中,我有三个TileGridArea,这是我创建的一个数据结构,用于存储相对于特定原点的列-行对 TileGridArea的操作非常基本,在本项目的许多其他领域中都可以正常工作,但是当我在MoveMethod中通过指针引用它们时,这些更改并没有正确显示,因此它会破坏我试图完成的所有寻路工作 我在第25-27行初始化构造函数中的三个 并在第2行的previewPath上执行第一个操作编辑:似乎只允许2个显式链接(http://codepad.org/wXxB
这是visual studio的问题还是我的代码的问题?我发现,当我所依赖的获取有关所涉及变量的准确信息的源完全错误时,调试对象的功能部分非常困难。对我来说很好。我将代码缩减到最小的可运行版本-您应该在将来自己做这件事
#include <assert.h>
class TileGridArea
{
public:
TileGridArea() : changed (false) {}
void addMember(int,int) {changed = true;}
bool changed;
};
class MoveMethod
{
public:
MoveMethod()
{
movePath = new TileGridArea();
previewPath = new TileGridArea();
possibleDestinations = new TileGridArea();
}
TileGridArea* movePath;
TileGridArea* previewPath;
TileGridArea* possibleDestinations;
};
int main()
{
MoveMethod m;
m.previewPath->addMember(3,4);
assert(m.previewPath->changed);
assert(!m.possibleDestinations->changed);
}
#包括
TileGridArea类
{
公众:
TileGridArea():已更改(false){}
void addMember(int,int){changed=true;}
布尔变了;
};
类移动方法
{
公众:
移动方法()
{
movePath=new TileGridArea();
previewPath=新的TileGridArea();
可能的目标=新的TileGridArea();
}
TileGridArea*移动路径;
TileGridArea*预览路径;
TileGridArea*可能的目标;
};
int main()
{
方法m;
m、 预览路径->添加成员(3,4);
断言(m.previewPath->changed);
断言(!m.possibleDestinations->changed);
}
很明显,它应该可以工作,但这对我没有多大帮助。我需要知道它为什么不起作用。那个代码示例对你来说仍然不起作用吗?如果哪怕一点点代码都不起作用,我会说你有一个填充版的VS2010——可能尝试重新安装VS2010。要知道这是你的代码还是VC 2010中的问题(有很多),只需将相关数据写入日志文件。简单的任务。