错误、漏洞、问题 - 页 1354

 

先生们,你们希望通过增加属性 :https://msdn.microsoft.com/en-us/library/x9fsa0sw.aspx,来显著提高语言的可用性。

不断地与设定器、获取器和括号跳舞是非常令人讨厌的。

 
Alexey Navoykov:

先生们,你们希望通过增加属性 :https://msdn.microsoft.com/en-us/library/x9fsa0sw.aspx,来显著提高语言的可用性。

不断地与设定器、获取器和括号跳舞是非常令人讨厌的。

阿列克谢,我很赞成,但我们应该进行投票,而不是在这里。这里有一些拐杖,我还没有在MQL中试过http://rsdn.ru/article/vcpp/props.xml
Свойства в С++
  • rsdn.org
В этой статье автор рассматривает различные способы реализации свойств в стиле Visual Basic на C++. Некоторые способы специфичны для Visual C++, тогда как другие годятся для применения в любой программе, написанной на языке C++.
 
Alexey Volchanskiy:
阿列克谢,我很赞成,但我们应该进行投票,而不是在这里。这里有一些拐杖,我还没有在MQL中试过http://rsdn.ru/article/vcpp/props.xml

你的链接上的编码有问题,它总是显示红色的文本。 但是我知道你的意思,我以前读过这些拐杖。 目前在MQL中不可能实现,因为不支持ghost运算符重载。但VS中的这一本地特性非常有用,尤其是当它被包裹在一个宏中时。 而且它不消耗任何额外的资源。 所以,现在是时候在MQL中也实现属性了,因为没有属性,一切都显得很笨拙。

 
Alexey Volchanskiy:

我想明白了,发现了MQL4编译器的一个错误。我一不留神,花了两天时间才找到它。问题的实质是这样的:我将给你最简单的代码。我没有得到一个编译或扭曲的错误,我得到一个运行时错误。

    double ptest = double(test); // тут должна быть ошибка компиляции!!! 

这里不需要任何错误。这里有一个明显的类型转换。在VS中会是这样的

  double ptest = (double)(int)(test);
这有什么区别呢?
 
A100:
这里不需要任何错误。这里有一个明确的类型转换
你不能把一个类投给一个有意义的类型,即使是明确的。肯定有一个错误。
 
请提醒我如何在市场概览窗口(MT4、MT5)中对符号进行排序。在一个终端上,它们被很好地分类,而在另一个终端上,则是一片混乱。我很久以前就把它分类了--我不记得我是怎么做的。除了把符号一个一个地拖到新的地方外,文档中没有任何相关内容。 但我没有确切地做到这一点--有可能对整个列表进行手动排序。:-/
 
Vasiliy Sokolov:
你不能把一个类投给一个有意义的类型,即使是明确的。这绝对是一个错误。

它不是一个类,它是一个指针,而指针是一个数字。

class A{};
void f()
{
        A *a;
        int i = int(a);
}

C++的编译没有错误

如果你不允许直接显式转换为double,那么下一次就会出现int而不是double,结果是一样的,编译器又会有罪。你必须把你自己的错误和编译器的错误区分开来。

 
A100:

它不是一个类,是一个指针,而指针是一个数字--学习数学。

C++的编译没有错误

如果你禁止直接显式转换为double,下次就会出现int而不是double的结果,编译器又会有罪。你应该把你自己的错误和编译器的错误区分开来。

那里没有指针,因为指针在MQL4/5中不存在。有手柄。

----------------------

我已经收到服务台的答复

支持团队 2015.08.24 09:44
谢谢你的帖子,将修复它。
的确,这里一定有一个编译错误


支持团队 2015.08.24 14:39

状态:打开 关闭
谢谢你的帖子,修好了。现在编译器将给出一个编译错误。
 
Alexey Volchanskiy:

那里没有指针,因为MQL4/5中没有指针。有描述词。

描述符仍然是一个具体的数字。这个数字没有指向一个具体的内存位置,但这并不意味着它失去了数字的属性。
 
A100:
一个描述符仍然是一个具体的数字
当然,就 "如何在记忆中存储 "而言,你是对的。
但将描述符转换为数字或反之亦然是没有意义的,这很可能是代码中的一个错误。
在不久的将来,如果一个适当的转换语句在类中被重载,它将被调用。