巴解组织。应用问题 - 页 13 1...678910111213141516171819 新评论 Yedelkin 2011.05.23 18:33 #121 TheXpert: 给我看一个例子,这样就不会有混淆了,然后我再回答。 //1-ый вариант. Переменная-член strA инициализируется автоматически class A { public: string strA; A(void) { Print("strA=",strA); }; ~A(void){}; }; //2-ой вариант. Переменная-член strB инициализируется при помощи инициализатора пользовательским значением class B { public: string strB; B(const string str) : strB(str) { Print("strB=",strB); } ~B(void){}; }; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnStart() { A a1; B b1("Пользовательское значение"); } 一个例子很简单。假设15个 "计算机周期 "花在自动初始化a1.strA成员上,我得出一个初步结论,15个周期也花在初始化b1.strB成员上。这是否正确? [删除] 2011.05.24 04:39 #122 在标准库 的CExpert 类中,有这些受保护的声明//--- trading objects CExpertTrade *m_trade; // trading object CExpertSignal *m_signal; // trading signals object CExpertMoney *m_money; // money manager object CExpertTrailing *m_trailing; // trailing stops object同时,该对象的构造函数包含以下字符串m_trade =NULL; m_signal =NULL; m_money =NULL; m_trailing =NULL; 我试图在我的类中创建类似的东西,但没有任何进一步的初始化(如Init和InitXXX)。编译器编译了一切,没有任何警告或错误,但它有一个关键错误281 (无效的指针访问),EA被从图表中删除。在这方面,我有一些问题。1.我应该在构造函数中做什么(指定NULL或指定特定对象的指针)?2.InitTrade 类型指针的初始化是强制性的吗? Victor Kirillin 2011.05.24 07:55 #123 Interesting:在标准库 的CExpert 类中,有这些受保护的声明同时,该对象的构造函数包含以下字符串 我试图在我的类中创建类似的东西,但没有任何进一步的初始化(如Init和InitXXX)。编译器编译了一切,没有任何警告或错误,但当我试图在图表上安装EA时,却出现了281号 关键错误 (无效的指针访问),EA被从图表上删除。在这方面,我有一些问题。1.我应该在构造函数中做什么(指定NULL或指定特定对象的指针)?2.InitTrade 类型指针的初始化是强制性的吗?1.这两个人都是正确的。这完全取决于类的特定实现(不是特别指CExpert)。然而,最好在InitXXX 方法中创建动态对象,该方法返回bool(因为构造函数不返回执行结果,你必须重置初始化标志,然后分析它(该标志)。2.当然是这样。否则,将发生关键错误281 (无效的指针访问)。PS。顺便说一句,谢谢。我必须在使用前插入指针检查。 TheXpert 2011.05.25 09:33 #124 Yedelkin: 一个例子很简单。假设15个 "计算机周期 "花在自动初始化a1.strA成员上,我得出一个初步结论,15个周期也花在初始化b1.strB成员上。这是否正确? 不,这根本不是战术的问题。或者,也许这并不是真的关于时钟。 Yedelkin 2011.05.25 17:10 #125 TheXpert: 不,这根本不是时钟的问题。好吧,或者不是真的关于时钟。 好吧,那么一个非常简单的问题:在时间上初始化哪个更快,是上面例子中的成员a1.strA还是成员b1.strB? 或者读什么 "逐点"?物理上没有办法在 "机器-处理器 "层面上学习编程。 Slava 2011.05.25 17:30 #126 Yedelkin: 好吧,那么一个非常简单的问题:在时间上初始化哪个更快,是上面例子中的成员a1.strA还是成员b1.strB? 或者读什么 "逐点"?物理上没有办法在 "机器-处理器 "层面上学习编程。 a1.strA的初始化速度会更快,因为它的初始化过程只是在原地调零。对于b1.strB,将进行内存分配。 然而,这种差异是相当难以衡量的,因为考虑到围绕初始化的代码,它远远小于百分之一。 TheXpert 2011.05.25 17:32 #127 Yedelkin: 这使得初始化速度更快 该问题是不正确的。 Yedelkin 2011.05.25 17:49 #128 stringo: 对于b1.strB,将进行内存分配。 给你,谢谢--我的逻辑中缺少的环节。 TheXpert,谢谢你的帮助。试图用我自己的话来解释这个问题。我同意,一个真正正确的问题是由那些知情者提出的。但他们通常不问我的水平问题 :) [删除] 2011.05.25 18:12 #129 uncleVic:1.它在两个方面都是正确的。这完全取决于该类的具体实现(不是特别指CExpert)。然而,最好在InitXXX 方法中创建动态对象,该方法返回bool(因为构造函数不返回执行结果,我们将不得不重置/取消初始化标志,然后分析它(该标志)。2.当然是这样。否则出现 关键错误281 (无效的指针访问)。PS。顺便说一句,谢谢。我必须在使用前插入指针检查。谢谢你,现在一切都在其位置上。然而,还有一个问题,我们假设281号错误发生了,但最好不要卸下专家顾问。我应该怎么做?让我澄清一下我的问题--如果在初始化的所有步骤后出现281个错误,但它不会严重影响智能顾问的主要工作,根本无法运行它,该怎么办? Yedelkin 2011.05.25 18:26 #130 Interesting: 假设发生错误281,但最好是不卸载EA。那我们应该怎么做? 让我澄清一下我的问题:如果在所有的初始化步骤后出现281号错误,但它不会严重影响专家顾问的主要工作,根本不会运行它,该怎么办? "无效的指针访问" =="试图访问一个无效的指针"?如果是,那么 试图访问一个无效的指针会导致 程序崩溃。这就是为什么在使用指针之前需要使用CheckPointer() 函数。在下列情况下,一个指针可能是无效的 指针为NULL;如果该对象已被删除 操作符销毁。 1...678910111213141516171819 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
给我看一个例子,这样就不会有混淆了,然后我再回答。
一个例子很简单。假设15个 "计算机周期 "花在自动初始化a1.strA成员上,我得出一个初步结论,15个周期也花在初始化b1.strB成员上。这是否正确?
在标准库 的CExpert 类中,有这些受保护的声明
同时,该对象的构造函数包含以下字符串
我试图在我的类中创建类似的东西,但没有任何进一步的初始化(如Init和InitXXX)。
编译器编译了一切,没有任何警告或错误,但它有一个关键错误281 (无效的指针访问),EA被从图表中删除。
在这方面,我有一些问题。
1.我应该在构造函数中做什么(指定NULL或指定特定对象的指针)?
2.InitTrade 类型指针的初始化是强制性的吗?
在标准库 的CExpert 类中,有这些受保护的声明
同时,该对象的构造函数包含以下字符串
我试图在我的类中创建类似的东西,但没有任何进一步的初始化(如Init和InitXXX)。
编译器编译了一切,没有任何警告或错误,但当我试图在图表上安装EA时,却出现了281号 关键错误 (无效的指针访问),EA被从图表上删除。
在这方面,我有一些问题。
1.我应该在构造函数中做什么(指定NULL或指定特定对象的指针)?
2.InitTrade 类型指针的初始化是强制性的吗?
1.这两个人都是正确的。这完全取决于类的特定实现(不是特别指CExpert)。然而,最好在InitXXX 方法中创建动态对象,该方法返回bool(因为构造函数不返回执行结果,你必须重置初始化标志,然后分析它(该标志)。
2.当然是这样。否则,将发生关键错误281 (无效的指针访问)。
PS。顺便说一句,谢谢。我必须在使用前插入指针检查。
一个例子很简单。假设15个 "计算机周期 "花在自动初始化a1.strA成员上,我得出一个初步结论,15个周期也花在初始化b1.strB成员上。这是否正确?
不,这根本不是时钟的问题。好吧,或者不是真的关于时钟。
好吧,那么一个非常简单的问题:在时间上初始化哪个更快,是上面例子中的成员a1.strA还是成员b1.strB?
或者读什么 "逐点"?物理上没有办法在 "机器-处理器 "层面上学习编程。
好吧,那么一个非常简单的问题:在时间上初始化哪个更快,是上面例子中的成员a1.strA还是成员b1.strB?
或者读什么 "逐点"?物理上没有办法在 "机器-处理器 "层面上学习编程。
a1.strA的初始化速度会更快,因为它的初始化过程只是在原地调零。对于b1.strB,将进行内存分配。
然而,这种差异是相当难以衡量的,因为考虑到围绕初始化的代码,它远远小于百分之一。
这使得初始化速度更快
对于b1.strB,将进行内存分配。
给你,谢谢--我的逻辑中缺少的环节。
TheXpert,谢谢你的帮助。试图用我自己的话来解释这个问题。我同意,一个真正正确的问题是由那些知情者提出的。但他们通常不问我的水平问题 :)
1.它在两个方面都是正确的。这完全取决于该类的具体实现(不是特别指CExpert)。然而,最好在InitXXX 方法中创建动态对象,该方法返回bool(因为构造函数不返回执行结果,我们将不得不重置/取消初始化标志,然后分析它(该标志)。
2.当然是这样。否则出现 关键错误281 (无效的指针访问)。
PS。顺便说一句,谢谢。我必须在使用前插入指针检查。
谢谢你,现在一切都在其位置上。然而,还有一个问题,我们假设281号错误发生了,但最好不要卸下专家顾问。我应该怎么做?
让我澄清一下我的问题--如果在初始化的所有步骤后出现281个错误,但它不会严重影响智能顾问的主要工作,根本无法运行它,该怎么办?
假设发生错误281,但最好是不卸载EA。那我们应该怎么做?
让我澄清一下我的问题:如果在所有的初始化步骤后出现281号错误,但它不会严重影响专家顾问的主要工作,根本不会运行它,该怎么办?
"无效的指针访问" =="试图访问一个无效的指针"?如果是,那么
试图访问一个无效的指针会导致 程序崩溃。这就是为什么在使用指针之前需要使用CheckPointer() 函数。在下列情况下,一个指针可能是无效的