错误、漏洞、问题 - 页 3062

 

这时,编译器应该给出一个错误。

class A
  {
public:
   int               aa;
  };
A a;

void OnStart()
  {
   a.aa=999999;
   A b=GetPointer(a);//Переменная b не является указателем
   Print(b.aa);
  }

脚本打印的是九号。

 
Aliaksandr Hryshyn:

这时,编译器应该给出一个错误。

脚本打印的是九号。

关于交易、自动交易系统和策略测试的论坛

新版MetaTrader 5 build 2980:交易操作的推送通知

A100, 2021.06.21 08:35

在MQL中,指针实际上不是指针(没有地址运算),而是引用

如果是这样,引用指针 到对象的隐式转换就会起作用

在C++中,它看起来像这样


#ifdef __cplusplus
#define GetPointer(a)   ((A&)(a))
void OnStart()
{
   a.aa=999999;
   A b = GetPointer(b);
   Print(b.aa);
}
#endif
 
A100 :

既然如此,一个隐含的指针 对象的转换就可以了

在C++中,它看起来像这样。

既然你对OOP非常了解。我可以问问你对这个问题的看法吗?

Bug: Const method + Copy constructor
Bug: Const method + Copy constructor
  • 2021.07.18
  • www.mql5.com
This code reproduces the bug: There are 2 workarounds for this code, you either remove the const qualifier from the method foo or create a temporar...
 
fxsaber:

远程机器 上,这种情况在一段时间后才开始发生。在这之前,一切都在正常工作。我不记得在操作系统中改变了什么。

我记得类似的事情。可能是与RDP连接有关。

用Alt+Tab切换窗口似乎也有帮助。

 
Andrey Khatimlianskii:

我记得类似的事情。可能是与RDP连接有关。

而且用Alt+Tab切换窗口 似乎也有帮助。

不幸的是,这并没有帮助。直到我关闭Alert,终端仍然不可见。

 
Alain Verleyen:

既然你对OOP非常了解。我可以问问你的意见吗?

在C++中,所有的东西都能编译,没有错误,在MQL中没有const (3) - 也能编译 - 这意味着在MQL的某个地方有一个错误。

class C {
public:
    C()           { Print( 1 ); }  
    C( const C& ) { Print( 2 ); }
    C h()         { Print( 3 ); return C(); }    //(3) нормально
    C f() const   { Print( 4 ); return C(); }    //(4) ошибка при компиляции
    C g() const   { Print( 5 ); C c; return c; } //(5) замена (4)
};
void OnStart()
{
    C c;
    c.f();
}

另一方面--即使(4)确实编译了,调用的顺序仍然会不同。

在MQL中。1-4-1-2

在C++中:1-4-1

所以在任何情况下,使用变体(5)是比较正确的。

 
A100 :

在C++中,所有的东西都能编译,没有错误,在MQL中没有const (3) - 也能编译 - 这意味着在MQL的某个地方有一个错误

另一方面,即使(4)确实编译了,调用的顺序也会不同。

在MQL中。1-4-1-2

在C++中:1-4-1

所以在任何情况下,使用变体(5)是比较正确的。

谢谢你 :-)
 

该死的,我还是不明白,所以告诉我,善意的人们。

为了防止Metaeditor中所有打开的文件 在完美的时刻崩溃,我必须做什么?

Metaeditor.ini是手动备份还是什么? 说真的。

只是,甚至不是在关闭/打开之后,而是就在公开场合,突然间一切都消失了。原因尚不清楚。

 
Aleksey Mavrin:

该死的,我还是不明白,所以告诉我,善意的人们。

为了防止Metaeditor中所有打开的文件 在完美的时刻崩溃,我必须做什么?

Metaeditor.ini是手动备份还是什么? 说真的。

只是,甚至不是在关闭/打开之后,而是就在公开场合,突然间一切都消失了。原因尚不清楚。

我不翻转,我把它当作便携版。
 

有一个客户。我已经做了他的工作。他想再次与我合作。创建了一项工作。无法弄清楚,或者他缺少一个需要附加规格的步骤。

删除了该工作。根据规则,你只能创建一个工作。不能创建,想创建另一个账户。(我建议他不要这样做,并写道,我将努力解决自己的支持问题)。

提出不在这里提前付款,我拒绝了。因为这对第三方(MKL)不公平。

请给他机会在这里创造一个工作机会。

不知何故,这是不对的。有一个人愿意为作品付费,有一个表演者同意做这件事并支付佣金。这个过程被停止了。

https://www.mql5.com/en/users/mbende/feedbacks