求对象被删除后导致运行错误的解决方案 新评论 Jiayou Hu 2021.01.15 02:12 // 测试对象 class clsA{ public: void a(){ Print("a"); } }; void OnStart() { clsA *A = new clsA(); delete A; // A=NULL , 这里只是简单的例子,可以通过主动设置NULL来解决,但在复杂的应用内,对象的循环引用,很难直接设置某个对象为NULL if(A != NULL){ // 这里除了这种判断,还有什么方式可以判断对象已经不存在了? Print("A已经删除,但!=NULL条件依然成立,导致执行问题"); A.a(); // A已经不存在,导致调用对象方法出错 ---> invalid pointer access in 'ClassDeleted.mq5' (24,7) } } 1、但对象在其他逻辑中被删除,如何判断这个对象已经被删除或不存在了? 2、Mql5没有try catch,系统直接遇到运行错误,也不知道是执行到哪根K线出现的错误,调试起来也不方便,大家有没有遇到这样的困惑,有没有什么好的解决方案? Ziheng Zhuang 2021.01.15 03:48 #1 用这个CheckPointer if(CheckPointer(A)!=NULL) { } Jiayou Hu 2021.01.15 05:21 #2 Ziheng Zhuang: 用这个CheckPointer 可行,非常感谢! Jiayou Hu 2021.01.15 06:33 #3 Jiayou Hu: 可行,非常感谢! if(CheckPointer(A)!=POINTER_INVALID) { } redmountain 2021.01.15 12:15 #4 Jiayou Hu: 我一直没怎么搞明白,这种高深的复杂操作是干什么用解决什么问题的? 各位大佬能给举个栗子吗? Jiayou Hu 2021.01.15 13:43 #5 redmountain: 我一直没怎么搞明白,这种高深的复杂操作是干什么用解决什么问题的? 各位大佬能给举个栗子吗? 前面发的就是一个栗子啊,没看懂? 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
1、但对象在其他逻辑中被删除,如何判断这个对象已经被删除或不存在了?
2、Mql5没有try catch,系统直接遇到运行错误,也不知道是执行到哪根K线出现的错误,调试起来也不方便,大家有没有遇到这样的困惑,有没有什么好的解决方案?