mql5中的OOP、模板和宏,细微之处和用途 - 页 25 1...1819202122232425262728 新评论 TheXpert 2020.02.26 14:24 #241 fxsaber: 可能,有些编译器在这种情况下会发出警告。 指定器指的是一个引用,而不是整个对象,一切都很合法,为什么编译器要发誓? fxsaber 2020.02.26 16:54 #242 TheXpert: 指定器指的是引用,而不是整个对象,一切都很合法,为什么编译器要发誓? 也许,如果是这样,这里就不会有骂声了。 void g1( A& ) {} void g2( const A& ) {} void OnStart() { const A a; g1(a); // 'a' - constant variable cannot be passed as reference g2(a); // OK } TheXpert 2020.02.26 17:05 #243 fxsaber: 也许,如果是这样的话,这里就不会有脏话了。 这是一个常量对象,所以在逻辑上,常量对象 不能有非常量的引用 fxsaber 2020.02.26 17:44 #244 TheXpert: 这是一个常量对象,所以在逻辑上,一个非常量对象 不能有一个非常量引用。 我如何引用一个常量对象? Vladimir Simakov 2020.02.26 18:06 #245 fxsaber: 我如何对一个常量对象 进行引用? void g1( A& ) {} void g1(const A& ){} void g2( const A& ) {} void OnStart() { const A a; g1(a); g2(a); } 增加一个过载。 fxsaber 2020.02.26 18:56 #246 Vladimir Simakov: 重载添加。 这样的过载不是在不断的链接吗? 关于交易、自动交易系统和策略测试的论坛 mql5中的OOP、模板和宏,技巧和窍门 TheXpert, 2020.02.26 15:24 指定者指的是引用,而不是指整个对象。 Vladimir Simakov 2020.02.26 19:00 #247 fxsaber: 这样的超载不就是一个不断的参考吗? 你想做什么? Vladimir Simakov 2020.02.26 19:10 #248 fxsaber: 这样的过载不是对恒定参考的过载吗? 如果你想让编译器在你的第一个例子上崩溃,那是行不通的,因为那里的一切都是合法的:你没有通过引用改变对象实例,你改变的是方法被调用的对象实例,而事实上,它可以是同一个对象,这不是编译器的问题,而是程序员的头疼。 对于一个班级,你可以做这一招(对于结构,你不能)。 class A { int i; public: void f( const A &Value ) { Print(Value.i); // 0 if (&this!=&Value) this.i = Value.i + 1; Print(Value.i); // 1 } }; void OnStart() { A a; a.f(a); } fxsaber 2020.02.26 19:27 #249 Vladimir Simakov: 如果你想让编译器让你的第一个例子崩溃,它不会的,因为那里的一切是合法的。 这与合法性无关,而是因为const修改器并不能保证对象保持不变。 fxsaber 2020.02.27 08:54 #250 关于交易、自动交易系统和交易策略测试的论坛 mql5中的OOP、模板和宏,技巧和窍门 fxsaber, 2020.02.25 22:23 我从未见过这个表达式返回错误。 ORDER_TIME_DONE_MSC == DEAL_TIME_MSC 这就是为什么很难根据交易历史对订单执行时间进行统计。 如果我们对市场订单还能比较ORDER_TIME_SETUP_MSC 的值,那么对挂单就没有意义。 关于交易、自动交易系统和策略测试的论坛 图书馆: MT4Orders fxsaber, 2020.02.27 09:40 0 - 348806: 00:01:57.311 1 - 348530: 00:01:39.027 2 - 348494: 00:01:15.259 3 - 348406: 00:01:07.671 4 - 348950: 00:01:04.869 5 - 348960: 00:01:02.888 6 - 348814: 00:01:00.654 7 - 348392: 00:01:00.642 8 - 348508: 00:00:54.515 9 - 348550: 00:00:54.467 在一个正在运行的账户上最多可执行两分钟。在这里分享你的统计资料。该脚本不使用任何库,它适用于联网/对接。 1...1819202122232425262728 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
fxsaber:
可能,有些编译器在这种情况下会发出警告。
指定器指的是一个引用,而不是整个对象,一切都很合法,为什么编译器要发誓?
指定器指的是引用,而不是整个对象,一切都很合法,为什么编译器要发誓?
也许,如果是这样,这里就不会有骂声了。
也许,如果是这样的话,这里就不会有脏话了。
这是一个常量对象,所以在逻辑上,常量对象 不能有非常量的引用
这是一个常量对象,所以在逻辑上,一个非常量对象 不能有一个非常量引用。
我如何引用一个常量对象?
我如何对一个常量对象 进行引用?
增加一个过载。
重载添加。
这样的过载不是在不断的链接吗?
关于交易、自动交易系统和策略测试的论坛
mql5中的OOP、模板和宏,技巧和窍门
TheXpert, 2020.02.26 15:24
指定者指的是引用,而不是指整个对象。
这样的超载不就是一个不断的参考吗?
你想做什么?
这样的过载不是对恒定参考的过载吗?
如果你想让编译器在你的第一个例子上崩溃,那是行不通的,因为那里的一切都是合法的:你没有通过引用改变对象实例,你改变的是方法被调用的对象实例,而事实上,它可以是同一个对象,这不是编译器的问题,而是程序员的头疼。
对于一个班级,你可以做这一招(对于结构,你不能)。
如果你想让编译器让你的第一个例子崩溃,它不会的,因为那里的一切是合法的。
这与合法性无关,而是因为const修改器并不能保证对象保持不变。
关于交易、自动交易系统和交易策略测试的论坛
mql5中的OOP、模板和宏,技巧和窍门
fxsaber, 2020.02.25 22:23
我从未见过这个表达式返回错误。这就是为什么很难根据交易历史对订单执行时间进行统计。
如果我们对市场订单还能比较ORDER_TIME_SETUP_MSC 的值,那么对挂单就没有意义。
关于交易、自动交易系统和策略测试的论坛
图书馆: MT4Orders
fxsaber, 2020.02.27 09:40
在一个正在运行的账户上最多可执行两分钟。在这里分享你的统计资料。该脚本不使用任何库,它适用于联网/对接。