我使用Visual Studio 2012 Express来调试64位应用程序。让我们说两个' foo'和' bar'是C类的一些成员函数。
'富'看起来像:
void foo() {
bar(); // change to this->bar() works!
}
我的程序崩溃是因为'这个'指针在进入内部时会发生变化' bar'。可以通过更改为' this-> bar()'。
来解决此问题知道我应该如何调试这个问题?感谢
答案 0 :(得分:0)
您的意思是以下代码有效吗?
void foo() {
this->bar(); // instead of bar()
}
因此,假设foo()是一个成员函数,它为同一个对象调用另一个成员函数bar(),检查两件事:(1)是否有另一个非成员函数bar()具有相同的成员函数签名bar(),如果存在,则更改非成员函数名称op始终符合this-> for member function call作为一个很好的编程习惯(2)当你为一些对象实例或指向对象实例的指针调用foo()时,检查对象是否已被正确分配和初始化。