【发布时间】:2016-06-16 13:35:45
【问题描述】:
我不明白下面的代码如何产生给定的输出。
#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里面
里面做某事
我使用空指针执行了一个函数,它实际上调用了该函数。 使用 ptr 的 cout 检索存储在 ptr 中的地址显示 ptr 在语句 ptr=NULL; 之后设置为 0; .但它仍然调用doSomething()。里面到底发生了什么?
【问题讨论】:
标签: c++