1:大家看看下面代码;居然打印两次“func1 exec !”;各位大师分析下是何原因!为何 delete obj;
obj = NULL;这两句没起作用;我觉得这种现象有点奇怪。问了几个人居然都无法解释。
#include <iostream>
#include <string>
#include <string.h>
using namespace std;
class abc
{
public:
void func1()
{
printf( "func1 exec !/n" );
}
};
int main()
{
abc * obj = new abc();
obj->func1();
delete obj;
obj = NULL;
obj->func1();
return 0;
}
2:更奇怪的还在后面;看下面代码;类abc指针obj指向NULL; 居然也可以打印;
#include <iostream>
#include <string>
#include <string.h>
using namespace std;
class abc
{
public:
void func1()
{
printf( "func1 exec !/n" );
}
};
int main()
{
abc * obj = NULL;
obj->func1();
obj = NULL;
obj->func1();
return 0;
}
期待各位大师的解释一下!