值为NULL的对象指针仍可调用函数
#include <iostream> using namespace std; class A { public: void SayHello() { cout << "Hello!" << endl; } protected: private: }; int main() { A* obj = new A(); obj->SayHello(); delete obj; obj = NULL; obj->SayHello(); return 0; }
1、应该保证在delete obj;之后,不再使用obj原来指向的对象。
2、类中定义的成员函数可以通过指向类的指针来调用,与指针是否指向一个真正的对象无关。但若SayHello函数中访问到了类的数据成员则会出错,因为数据成员的空间已经随着delete被释放掉了。