我不明白下面的代码如何产生给定的输出.
#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();
}
Run Code Online (Sandbox Code Playgroud)
产量
里面doSomething
里面做的东西
我用空指针执行了一个函数,它实际上调用了该函数.使用ptr的cout检索存储在ptr中的地址表明在语句ptr = NULL之后ptr被设置为0; 但是它仍然调用doSomething().内部实际发生了什么?
c++ ×1