小编Abh*_*and的帖子

将指针设置为null后,通过指针访问函数

我不明白下面的代码如何产生给定的输出.

#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++

4
推荐指数
1
解决办法
91
查看次数

标签 统计

c++ ×1