错误、漏洞、问题 - 页 759 1...752753754755756757758759760761762763764765766...3184 新评论 [删除] 2012.06.29 13:23 #7581 WWer:所以应该是这样,复制构造函数的作用由重载赋值运算符来完成? 我不知道什么是正确的,但VS中的赋值运算符 不执行复制构造器的作用。class tt { public: int f; tt(tt& u) {f = 1;} // Копирующий конструктор, при выполнении его f == 1 tt(){} void operator=(tt &u){f = 100;} // При выполнении f == 100 }; tt fn() { tt q3; return(q3); } int _tmain(int argc, _TCHAR* argv[]) { tt q2 = fn(); std::cout<<q2.f; char input[54]; std::cin>>input; return 0; }屏幕显示1,即复制构造函数被执行。我认为是这样的。"2)用重载的赋值运算符 取消注释停止 "应该是没有用的。 Ilyas 2012.06.29 13:31 #7582 220Volt: 我不知道什么是正确的,但VS中的赋值运算符 不执行复制构造器的作用。屏幕显示1,即复制构造器正在运行。我认为这一点。"2)用重载的赋值运算符 取消注释停止 "应该没有帮助。复制构造函数在此执行 tt q2 = fn(); 而不是在fn()函数内。 [删除] 2012.06.29 13:38 #7583 mql5:拷贝构造函数在这里进行 而不是在fn()函数里面。在这个变体中。class tt { public: int f; tt(tt& u) {f = 1;} tt(){f = 198;} void operator=(tt &u){f = 100; std::cout<<"Выполнился присваивающий конструктор";} }; tt fn() { tt q3; return(q3); } int _tmain(int argc, _TCHAR* argv[]) { tt q2 = fn(); std::cout<<q2.f; char input[54]; std::cin>>input; return 0; } 没有输出 "赋值构造器被执行 "一行。 [删除] 2012.06.29 13:42 #7584 就这样推导出来了。tt q2; q2 = fn(); WWer,如果通过与VS的类比,你需要看一下具体的情况,举一个具体的复制/分配的例子。将被执行的内容是当场决定的。 Vladimir Gomonov 2012.06.29 13:57 #7585 WWer:为什么要进行初始化?它是一个类的实例,这个类有一个构造函数,就是为了这个目的。 是的,真的,对不起。以及如何正确地写出一个用于此目的的复制构造函数?你试图返回对象的函数getCopy()写得很正确。在重写赋值后,它已经返回一个指针,错误就会消失。--这里的混乱可能是由于该语言有一些 "语法反弹",与访问静态对象和动态对象的字段的相同语法表示有关(用一个点而不是一个箭头,顺便说一下,这真的很方便)。这是很常见的,而且会在一定程度上模糊了对象和对象指针之间的区别,这反过来又会导致一些错觉,比如一些东西可以被分配给静态(或自动)对象变量。远的不说,在赋值左边的对象变量总是一个指针。 如果没有定义复制构造函数. Ilyas 2012.06.29 14:27 #7586 不幸的是,这正是MQL5与C++不同的地方。 C++在fn()函数中构建了q2对象的返回,这就是为什么复制构造函数可以工作。在MQL5中,对象是从外部构造的,所以有区别。让我们消除它们。对于那些有兴趣的人来说:它被称为返回值优化。 [删除] 2012.06.29 22:55 #7587 同事们,大家好你能告诉我如何能同步 获得不同金融工具的价格值吗?我的意思是,例如,在过去的某个时间点,不同工具上的条形收盘价。使用CopyClose函数 并通过柱状体的索引 来获取数值并不是绝对正确的,因为对于不同的工具可能会有一些遗漏的柱状体。在我印象中,mql4有按时间划分的BarShift功能,mql5上是否有类似的功能? Документация по MQL5: Доступ к таймсериям и индикаторам / CopyClose www.mql5.com Доступ к таймсериям и индикаторам / CopyClose - Документация по MQL5 Olegs Kucerenko 2012.06.29 23:20 #7588 如果你知道时间,你可以使用这个功能。按开始日期和所需项目的数量进行处理intCopyClose( stringsymbol_name,//符号名称ENUM_TIMEFRAMESTimeframe,// perioddatetimestart_time,// from whichdate intcount,//我们复制多少个 doubleclose_array[]// 用于复制收盘价的数组)。 [删除] 2012.06.29 23:33 #7589 Karlson:如果你知道时间,你可以使用这个功能。请参考开始日期和所需项目的数量intCopyClose(stringsymbol_name,// 符号名称ENUM_TIMEFRAMEStimeframe,// perioddatetimestart_time,//from what dateintcount,// 我们复制多少个doubleclose_array[]// 用于复制收盘价的数组);假设,我想找到close[i]EUR/USD和close[i]GBP/USD的比率,但如果我使用指数i,无论如何,条形图可能在时间上是不同的,因为有一些漏掉的条形图。换句话说,我必须对每个柱子循环使用CopyClose(Symbol, 0, date_of_current_bar,1, array) ? Документация по MQL5: Доступ к таймсериям и индикаторам / CopyClose www.mql5.com Доступ к таймсериям и индикаторам / CopyClose - Документация по MQL5 Olegs Kucerenko 2012.06.29 23:44 #7590 在我看来,老TF的酒吧很少 "消失"。另一个变种是通过CopyTime()同时获得这个酒吧的时间。第三种选择(可能是最简单的),在结构上一次使用CopyRates。 Документация по MQL5: Доступ к таймсериям и индикаторам / CopyRates www.mql5.com Доступ к таймсериям и индикаторам / CopyRates - Документация по MQL5 1...752753754755756757758759760761762763764765766...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
所以应该是这样,复制构造函数的作用由重载赋值运算符来完成?
屏幕显示1,即复制构造函数被执行。
我认为是这样的。"2)用重载的赋值运算符 取消注释停止 "应该是没有用的。
我不知道什么是正确的,但VS中的赋值运算符 不执行复制构造器的作用。
屏幕显示1,即复制构造器正在运行。
我认为这一点。"2)用重载的赋值运算符 取消注释停止 "应该没有帮助。
复制构造函数在此执行
而不是在fn()函数内。拷贝构造函数在这里进行
而不是在fn()函数里面。在这个变体中。
没有输出 "赋值构造器被执行 "一行。就这样推导出来了。
WWer,如果通过与VS的类比,你需要看一下具体的情况,举一个具体的复制/分配的例子。将被执行的内容是当场决定的。为什么要进行初始化?它是一个类的实例,这个类有一个构造函数,就是为了这个目的。
以及如何正确地写出一个用于此目的的复制构造函数?
你试图返回对象的函数getCopy()写得很正确。在重写赋值后,它已经返回一个指针,错误就会消失。
--
这里的混乱可能是由于该语言有一些 "语法反弹",与访问静态对象和动态对象的字段的相同语法表示有关(用一个点而不是一个箭头,顺便说一下,这真的很方便)。这是很常见的,而且会在一定程度上模糊了对象和对象指针之间的区别,这反过来又会导致一些错觉,比如一些东西可以被分配给静态(或自动)对象变量。远的不说,在赋值左边的对象变量总是一个指针。 如果没有定义复制构造函数.
C++在fn()函数中构建了q2对象的返回,这就是为什么复制构造函数可以工作。
在MQL5中,对象是从外部构造的,所以有区别。让我们消除它们。
对于那些有兴趣的人来说:它被称为返回值优化。
同事们,大家好
你能告诉我如何能同步 获得不同金融工具的价格值吗?我的意思是,例如,在过去的某个时间点,不同工具上的条形收盘价。使用CopyClose函数 并通过柱状体的索引 来获取数值并不是绝对正确的,因为对于不同的工具可能会有一些遗漏的柱状体。在我印象中,mql4有按时间划分的BarShift功能,mql5上是否有类似的功能?
如果你知道时间,你可以使用这个功能。
按开始日期和所需项目的数量进行处理
intCopyClose(
stringsymbol_name,//符号名称
ENUM_TIMEFRAMESTimeframe,// period
datetimestart_time,// from whichdate
intcount,//我们复制多少个
doubleclose_array[]// 用于复制收盘价的数组
)。
如果你知道时间,你可以使用这个功能。
请参考开始日期和所需项目的数量
intCopyClose(
stringsymbol_name,// 符号名称
ENUM_TIMEFRAMEStimeframe,// period
datetimestart_time,//from what date
intcount,// 我们复制多少个
doubleclose_array[]// 用于复制收盘价的数组
);
假设,我想找到close[i]EUR/USD和close[i]GBP/USD的比率,但如果我使用指数i,无论如何,条形图可能在时间上是不同的,因为有一些漏掉的条形图。
换句话说,我必须对每个柱子循环使用CopyClose(Symbol, 0, date_of_current_bar,1, array) ?
在我看来,老TF的酒吧很少 "消失"。
另一个变种是通过CopyTime()同时获得这个酒吧的时间。
第三种选择(可能是最简单的),在结构上一次使用CopyRates。