我不明白下面的代碼片段如何生成給定的輸出。將指針設置爲空後通過指針訪問函數
#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()。實際內部發生了什麼?