'这'调用成员函数后指针发生变化

时间:2014-10-03 01:57:47

标签: c++ visual-studio-2012

我使用Visual Studio 2012 Express来调试64位应用程序。让我们说两个' foo'和' bar'是C类的一些成员函数。

'富'看起来像:

void foo() {
    bar();    // change to this->bar() works!
}

我的程序崩溃是因为'这个'指针在进入内部时会发生变化' bar'。可以通过更改为' this-> bar()'。

来解决此问题

知道我应该如何调试这个问题?感谢

1 个答案:

答案 0 :(得分:0)

您的意思是以下代码有效吗?

void foo() {
    this->bar();    // instead of bar()
}

因此,假设foo()是一个成员函数,它为同一个对象调用另一个成员函数bar(),检查两件事:(1)是否有另一个非成员函数bar()具有相同的成员函数签名bar(),如果存在,则更改非成员函数名称op始终符合this-> for member function call作为一个很好的编程习惯(2)当你为一些对象实例或指向对象实例的指针调用foo()时,检查对象是否已被正确分配和初始化。