MQL语言中如何判断对象是否已经销毁,以及在对象被删除后出现错误时的解决方法?
classA *obj = new classA();
delete obj;
if (obj != NULL) {
Print("obj对象已经销毁删除,但 obj!=NULL条件依然成立");
obj.a();
}
以上代码存在问题,我们需要使用MQL语言内部的对象指针检查函数CheckPointer来解决。修改后的代码如下:
if (CheckPointer(obj) != POINTER_INVALID) {
Print("obj对象已经销毁删除,但 obj !=NULL条件依然成立!");
obj.a();
}
在这里,我们通过CheckPointer函数来判断对象是否已经销毁。如果CheckPointer函数返回的结果不等于POINTER_INVALID,说明对象仍然存在,我们可以继续使用它。这样就能够避免在对象被删除后出现错误。



