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,说明对象仍然存在,我们可以继续使用它。这样就能够避免在对象被删除后出现错误。