错误、漏洞、问题 - 页 1416 1...140914101411141214131414141514161417141814191420142114221423...3184 新评论 Alexey Navoykov 2015.10.24 10:33 #14151 什么时候会出现 "内部编译器错误"? 伊利亚斯:,到目前为止我们知道有两个案例。 1) 在bool &=操作中(bool表达式)。 2)初始化序列 中不必要的逗号: val={ {...},{...},}。这些错误在新版本中仍未修复吗? 我的编译器仍会产生错误,我必须坚持使用1159版本。 coderex 2015.10.24 11:24 #14152 Renat Fatkhullin: 对模板的要求是把所有的方法放在类的描述里面,而不把主体放在外面。我明白了,最主要的是保持这一要求,因为刚刚创建了堆栈和队列容器,一个月后出现了类模板,有了它们,一切都应该更好地工作 :)另一个问题是关于类模板。有两个模板类,一个类使用另一个,一个类型是否会从一个模板类转移到另一个? Renat Fatkhullin 2015.10.24 11:43 #14153 coderex:我明白了,最主要的是保持这一要求,因为刚刚创建了堆栈和队列容器,一个月后出现了类模板,有了它们,一切都应该更好地工作 :)另一个问题是关于类模板。有两个模板类,其中一个类使用了另一个类,到底会不会有一个模板类的类型转移到另一个模板类? 试试吧。 coderex 2015.10.24 13:56 #14154 Renat Fatkhullin: 试试吧。 我试了一下,出现了一些错误,想到了另一种方法......。 Alexey Volchanskiy 2015.10.24 20:24 #14155 Ilyas:На сегодня известно о двух случаях: 1) в операции bool &= (bool expression) 2) Лишняя запятая в инициализирующих последовательностях: val={ {...},{...}, }阿列克谢-纳沃伊科夫。 这些错误在新版本中还没有修复吗? 我的编译器仍然给我一个错误,我必须保持在1159版本上。 为了以防万一,在MT4 890中检查了第2页的额外逗号--只是给出错误信息。 sigma7i 2015.10.25 11:03 #14156 有没有人做过CList 分类?基本上我们需要覆盖比较。但我一直在调用基类的比较。但它不工作,我想知道这里有什么问题......做了一个简单的例子。class COperation : public CObject { public: double number; COperation(double p) { number = p;} virtual int Compare(const CObject *node,const int mode=0); }; int COperation::Compare(const CObject *node,const int mode=0) { const COperation *ppp = node; if(this.number > ppp.number) { return 1; } if(this.number < ppp.number) { return -1; } return 0; } void OnStart() { CList *list = new CList(); list.Add(new COperation(3)); list.Add(new COperation(4)); list.Add(new COperation(7)); list.Add(new COperation(2)); list.Add(new COperation(3)); list.Add(new COperation(9)); list.Add(new COperation(0)); list.Add(new COperation(1)); Print("After Sort"); COperation *node = list.GetFirstNode(); string numbers = ""; for(;node != NULL; node = node.Next()) { numbers += (string)node.number + " "; } Print(numbers); numbers = ""; list.Sort(0); Print("Before Sort"); node = list.GetFirstNode(); for(;node != NULL; node = node.Next()) { numbers += (string)node.number + " "; } Print(numbers); delete list; } 附加的文件: sort.mq5 3 kb Stanislav Korotky 2015.10.25 11:40 #14157 在处理嵌套模板(MQL4)时,我看到类型传递的故障--有人注意到吗?特别是,有一个类A有一个模板方法,在这个方法里面,另一个类B的对象是由一个模板构造器使用方法初始化的相同类型T创建的。结果,在该方法中,typename正确地定义了传入的类型,例如int,但在B构造函数中,typename已经是string。SD? TheXpert 2015.10.25 11:41 #14158 最正统的排序方式是将表重载到一个数组中,对数组进行排序,再重载回来。 Georgiy Merts 2015.10.25 12:04 #14159 我一直在使用排序 - 完全没有问题。你,sigma7i,错误地重载了方法Coperation::Compare(),它返回错误的值类型,而基方法CObject::Compare() 返回的是错误的值,编译器认为它是独立的,不是虚拟的。其结果是,在你的对象中只有基方法被调用,编译器认为没有后裔。 A100 2015.10.25 12:09 #14160 sigma7i:但它一直在调用基类的比较。但它不工作,所以我认为有什么问题......virtual int Compare(const CObject *node,const int mode=0) const; 1...140914101411141214131414141514161417141814191420142114221423...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
,到目前为止我们知道有两个案例。
1) 在bool &=操作中(bool表达式)。
2)初始化序列 中不必要的逗号: val={ {...},{...},}。
这些错误在新版本中仍未修复吗? 我的编译器仍会产生错误,我必须坚持使用1159版本。
对模板的要求是把所有的方法放在类的描述里面,而不把主体放在外面。
我明白了,最主要的是保持这一要求,因为刚刚创建了堆栈和队列容器,一个月后出现了类模板,有了它们,一切都应该更好地工作 :)
另一个问题是关于类模板。有两个模板类,一个类使用另一个,一个类型是否会从一个模板类转移到另一个?
我明白了,最主要的是保持这一要求,因为刚刚创建了堆栈和队列容器,一个月后出现了类模板,有了它们,一切都应该更好地工作 :)
另一个问题是关于类模板。有两个模板类,其中一个类使用了另一个类,到底会不会有一个模板类的类型转移到另一个模板类?
试试吧。
Ilyas:
На сегодня известно о двух случаях:
1) в операции bool &= (bool expression)
2) Лишняя запятая в инициализирующих последовательностях: val={ {...},{...}, }
阿列克谢-纳沃伊科夫。
这些错误在新版本中还没有修复吗? 我的编译器仍然给我一个错误,我必须保持在1159版本上。
有没有人做过CList 分类?
基本上我们需要覆盖比较。
但我一直在调用基类的比较。但它不工作,我想知道这里有什么问题......
做了一个简单的例子。
在处理嵌套模板(MQL4)时,我看到类型传递的故障--有人注意到吗?
特别是,有一个类A有一个模板方法,在这个方法里面,另一个类B的对象是由一个模板构造器使用方法初始化的相同类型T创建的。结果,在该方法中,typename正确地定义了传入的类型,例如int,但在B构造函数中,typename已经是string。
SD?
我一直在使用排序 - 完全没有问题。
你,sigma7i,错误地重载了方法Coperation::Compare(),它返回错误的值类型,而基方法CObject::Compare() 返回的是错误的值,编译器认为它是独立的,不是虚拟的。其结果是,在你的对象中只有基方法被调用,编译器认为没有后裔。
但它一直在调用基类的比较。但它不工作,所以我认为有什么问题......