我不明白下面的代码片段如何生成给定的输出。将指针设置为空后通过指针访问函数
#include <iostream>
using namespace std;
class MyClass
{
public:
void doSomething()
{
cout<<"Inside doSomething"<<endl;
}
};
int main()
{
MyClass obj;
MyClass *ptr=&obj;
ptr->doSomething();
ptr=NULL;
ptr->doSomething();
}
输出
内DoSomething的
内DoSomething的
我执行的功能与一个空指针,它实际上调用该函数。 使用ptr的ptr检索存储在ptr中的地址表明在语句ptr = NULL之后ptr被设置为0;但它仍然会调用doSomething()。实际内部发生了什么?