class MySecond: MyFirst
{
void MySecond(MyArg arg):
MyFirst(arg)
{ // Можно код инициализации VMT добавлять здесь. Тогда не будет проблем с виртуальными вызовами.
...............
MyVirtualFunc();
...........
return;
} // Сейчас код инициализации VMT добавляется здесь.
};
所以要做一个工厂。这将解决这个问题。
在那里工作很容易,因为它是。该物体的结构相当僵硬。它调用其每个成员的虚拟Load方法,它们反过来做同样的事情。在每个数据块(对象)的开头,都写有类型的ID(用于加载时的控制)。这就是它的全部内容。它是一种自制的工厂。
如果以前的未知类型可以在文件中出现,那么做一个工厂是有意义的。 那么就需要工厂和类型注册表了。虽然问题没有这么解决,但我已经用回形针和胶布解决了。:)
冈恩的粉丝。
如果第二个锚点 在未来,角度就会改变。
另外,这个对象在复制时有一些问题(按住Ctrl键)。很多时候,它并没有复制,而是拖着原件,而且需要第三次或第五次尝试才能复制。
好的,太好了。
Slava,我可以问一下(对于一般的开发),为什么你不能在构造函数的开头(在祖先初始化之后)初始化虚拟方法表?
我以前告诉过你。构造者制定了层次结构。在建立祖先的同时,没有关于后代的信息。
我已经读过了。而且我非常理解它。而我是根据我对所读内容的理解来提问的。 我会努力让它更清楚,用图片来说明。
我什么都明白,比较难做,有各种微妙的东西。把所有的隐式初始化写在最后,要容易得多(对你来说)。而且我甚至事先相信 "没有人这样做","这在C++中是不习惯的 "等等。
但是对于我们(用户)来说,把MySecond()构造函数看作是MySecond类而不是MyFirst类的一个领地,是更简单、更普遍、更合理和更符合逻辑的。想一想什么更容易:是让虚拟函数 在构造函数中工作,还是在文档中多处表达对构造函数代码的重要而严重的限制,尽管如此,还经常收到新手们给服务台和论坛发来的 "关于构造函数中的虚拟错误 "的重要而严重的信息。 这也是一个严重的因素--新手们很快就会有很多期待...
带结构的张量运算符会导致代码生成错误(尽管如果你用if代替它,它就会工作)。
我经常收到错误4401
误导性的历史记录。
以下是指标代码
将在启动时立即产生一个错误(如果不是在D1)。或者说,一旦启动终端 并打开图表后--把指标放上去,我们会得到一个错误。如果终端没有关闭,启动时就不会有这样的错误。
但经过一段时间后(几个小时--对我来说2个小时就够了),我们会看到,在已经打开的图表上会出现错误。(我在M30上运行)
各位开发者,你们好!
我们能否在MQL5编译器中进行修改,至少给我们一个警告?
对于代码中的这种错误。
if(Flag_Exitl=true) {break;}
这里的比较条件不正确(应该是==),这就是为什么它总是被打破。
如何在编译器中解决这种情况(如果有可能的话),以便我在写代码时可以不那么颠簸?
(我以为不会成功,似乎在if中把赋值和比较分开,那么问题就被删除了)。
大师们,你们好!
是否有可能改变MQL5的编译器,至少给出一个警告?
对于代码中的这种错误。
if(Flag_Exitl=true) {break;}
比较条件不正确(应该是==),这就是为什么它总是会被打破。
如何在编译器中解决这种情况(如果有可能的话),使我在写代码时能少些颠簸?
(我想过这是行不通的,我可能会把赋值和比较分在如果,所以问题被删除)。
该条件可能写得不正确,但在MQL5中是允许的。
我将翻译你的编码:Flag_Exitl变量必须被设置为真,然后检查Flag_Exitl是否为真,然后中断。
行动的顺序完全是这样的。
我不太明白如何处理那些不需要在屏幕上显示的缓冲区。
根据下面的代码,出于某种原因
1)不画 任何东西
2) 两个缓冲区都被称为Label1
尽管它们包含正确的数据
你好。我可能写错了方向,但我希望你能为我指出正确的方向。关于mt5的网络应用程序接口的问题,该去哪里?)
为了以防万一,我将尝试解释一下情况。我有 МТ 经理和WEB API 与 php...俄文发票已创建,数据已发送,甚至显示在МТ管理器中,但有一个问题--МТ管理器中的数据显示为unicode("044404300c0438043b0438044f"--这就是用户名的模样)。当发送数据时,没有任何东西被编码或解码,从MT客户端,一切都正常创建...至少要看哪个方向?(