MQL5 编译器不区分类和它的指针 - 页 10

 
Ilya Malev:

而在这些行动真正 出台之前,又有多少时间飞逝而过......。可能只有风才知道。但是,是的,相当重要的事情可以在论坛上提出来,多年来都没有什么成效。

如果你不偷懒,向前 滚动,你就可以看到一切。

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

虫子,虫子,问题

伊利亚斯, 2015.09.03 14:30


增加了运算符*(解构/不解构)和&(寻址),不会有额外的语言变化/计划。
A *a,*b;

 a== b;   // сравнение "указателей"
*a== b;   // вызов оператора ==(A *)
 a==*b;   // вызов оператора ==(A &)

// для операции != аналогично

// операция & - эквивалент(короткая запись) вызову GetPointer

 
Alexey Navoykov:

好吧,如果你不偷懒,向前 滚动一下,你就可以看到一切。

如果你进一步向下滚动,你会发现这个。

伊利亚斯
添加到两种语言。但不幸的是,它不会出现在下一个版本中。

一般来说,很明显,大约三年前,最有可能的是,他们被添加...但是,新闻在哪里,文档在哪里,帮助在哪里,如果它们是同时添加的,为什么只提到&操作符而没有*?从文档中出现了&,而*却没有这一事实来看,我们可以认为是*在发布前由于某种原因被放弃了,最后才加入的。要确定这一点,你需要找到一个关于添加该内容的新闻帖子,或者询问管理员本人。

 
我可以给好奇的人建立1047、1085、1210和1224(大约在那个时候)进行实验;)

 
Andrey Khatimlianskii:
我可以给你1047、1085、1210和1224(大约在那个时候)的建筑,供你实验;)

你可以把它交给我。我的电子邮件在我的个人资料中。

 
Ilya Malev:

你可以把它交给我。我的电子邮件地址在我的个人资料中。

也许其他人会喜欢 它。

 
是的,这是一个真正的风趣的话题 ))
 
47对我来说不是在运行。
85 (MT4 13.02.15) *不工作
1210 (MT5 30.10.15) *不工作
1224 (MT5 16.12.15) *不工作(即3拼在该问题线程帖子的三个月后)。

同时,1224年的&编译为 "万岁"。这证明了我的假设,即当时只添加了&而不是*

 

也就是说,最初,指针被添加到MQL中,而在代码中不可能对其进行解引用。这是一个有趣的方法。

是留下完成指针运算,还是在某种程度上已经可以了?

class A
{
public:

    int iValue;
};
//......................
A m_A[5];

void OnStart()
{
A* pA;

    for(int c =0; c < 5; c++)
    {
        pA = &m_A[c]; 
        
        (*pA).iValue =c;
        printf("A[%i].iValue: %i", c, m_A[c].iValue);
        // pA++
    }
}
 
SemenTalonov:
(* pA).iValue =c;

这一个。(* )在这里不需要

* 只有在μl中,当操作=, ==, !=, !, &&或||直接应用到*指针时才需要。
 
Ilya Malev:
而1224年的&,则以优异的成绩完成了编撰。这证明了我的假设,即当时只添加了&而不是*

顺便说一句,很可能是由于所有的官方渠道(论坛、帮助、文档)都对*操作者保持沉默,管理员可能在考虑再次删除它并假装它从未存在过))。因此,目前严重依赖其使用是危险的,我认为。