I do not understand how the code below gives the given result.
#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();
}
Output
Inside doSomething
Inside doSomething
I executed a function with a null pointer, and it actually calls the function. Getting the address stored in ptr using cout ptr shows that ptr is set to 0 after the ptr = NULL statement; But it still calls doSomething (). What is really going on inside?
source
share