MQL5中的OOP问题 - 页 84 1...777879808182838485868788899091...96 新评论 Igor Makanu 2020.06.15 21:35 #831 Pavel Verveyko: 是否可以在公共类部分声明一个静态数组,并在构造函数中初始化它?(如下图)(或只按元素计算?) 你可以 或者你毕竟是在寻找一个静态数组的初始化? class A { public: static bool Mass[5]; A() { ArrayPrint(Mass); } }; static bool A::Mass[5] = { false, true, false, true, true }; //+------------------------------------------------------------------+ void OnStart() { A a; } //+------------------------------------------------------------------+ Dmitry Fedoseev 2020.06.15 21:39 #832 Pavel Verveyko: 静态数组 是否可以在公有类部分声明并在构造函数中初始化?(如下图)(或只按元素计算?) 情况是这样的。class A{ protected: static int x[]; int my[]; public: A(){ ArrayCopy(my,x); } }; int A::x[]={1,2,3,4,5}; A a; 总的来说,OOP的这种贫困在其辉煌的背景下是引人注目的。为什么我们在声明变量和数组时不能像往常一样初始化它们?我不怀疑,理论家们现在会搬出很多理论来证明我是个白痴,但还是......。 Pavel Verveyko 2020.06.15 21:45 #833 Sergey Dzyublik:你可以初始化一个本地数组并执行ArrayCopy到相应的数组字段。 这也是一个想法,它也可以放在任何类之外的全局范围内。 这更简单,但我希望它是OOP)) Pavel Verveyko 2020.06.15 21:50 #834 Dmitry Fedoseev:情况是这样的。 总的来说,OOP的这种贫困在其辉煌的背景下是引人注目的。为什么我们在声明变量和数组时不能像往常一样初始化它们?我不怀疑,理论家们会想出很多理论来证明我是个白痴,但还是......。 我每次用OOP 写作时都有完全相同的想法))。 Vladimir Simakov 2020.06.15 21:50 #835 Pavel Verveyko:这也是一个想法,它可以放在任何类之外的全局范围内。 这更简单,但我希望它是OOP)) class CTest{ public: int a[4]; CTest(){ static int _a[]={1,2,3,4}; ArrayCopy(a,_a); } }; Pavel Verveyko 2020.06.15 21:53 #836 Igor Makanu:你可以或者你毕竟是在寻找静态数组的初始化? 有趣的选择。 是调用一个 "带有构造函数的方法"? Igor Makanu 2020.06.15 21:56 #837 Pavel Verveyko:有趣的选择。,这是一个 "带有构造函数的方法 "调用吗?不这就是你初始化静态的方式。你不需要初始化它,代码会是这样的。class A { public: static bool Mass[5]; A() { ArrayPrint(Mass); } }; static bool A::Mass[5]; //+------------------------------------------------------------------+ void OnStart() { A a; } //+------------------------------------------------------------------+这不是一个方法调用,而是A::Mass[5]类字段的全名。但如果你删除了这一行,就会出现编译器错误--static需要在创建类实例之前分配内存--这就是黄线的作用。 Pavel Verveyko 2020.06.15 22:00 #838 Igor Makanu:不静态学的初始化是这样写的你不必初始化它,这就是代码的样子。 谢谢你,原来这一行(静态 bool A::Mass[5];)无论如何也不能转到构造函数中去? Igor Makanu 2020.06.15 22:03 #839 Pavel Verveyko:还是说这是在这种情况下初始化静力学的唯一方法? 上述帖子的补充 是的,静力学应该单独描述,@fxsaber 帮助我理解了它https://www.mql5.com/ru/forum/325418/page4#comment_16116740 你也可以在MQL5中初始化静态类。 Pavel Verveyko: 即这一行(静态 bool A::Mass[5]; )不能转移到构造函数? 不,这是一个静态的类字段。 你需要提前分配内存,而不是在创建类实例的时候。 而你将把它作为一个普通的数组进一步使用 如果问题是关于单个字符串形式的初始化,那么Sergei的版本就是你要找的,只是你不需要静态的。 Pavel Verveyko 2020.06.15 22:07 #840 Igor Makanu:上述帖子的补充是的,静力学应该单独描述,@fxsaber 帮助我理解了它https://www.mql5.com/ru/forum/325418/page4#comment_16116740你也可以在MQL中初始化静态类。 谢谢,现在我试了一下,发现用这种方式访问数组是可行的。 int OnInit() { ArrayPrint(A::Mass); return(INIT_SUCCEEDED); } 说实话,我们有OOP,但我没有在《帮助》中看到它。很遗憾,它没有描述这样的细微差别。 ,非常感谢每个人的回复! 1...777879808182838485868788899091...96 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
是否可以在公共类部分声明一个静态数组,并在构造函数中初始化它?(如下图)(或只按元素计算?)
你可以
或者你毕竟是在寻找一个静态数组的初始化?
静态数组 是否可以在公有类部分声明并在构造函数中初始化?(如下图)(或只按元素计算?)
情况是这样的。
总的来说,OOP的这种贫困在其辉煌的背景下是引人注目的。为什么我们在声明变量和数组时不能像往常一样初始化它们?我不怀疑,理论家们现在会搬出很多理论来证明我是个白痴,但还是......。你可以初始化一个本地数组并执行ArrayCopy到相应的数组字段。
这也是一个想法,它也可以放在任何类之外的全局范围内。
这更简单,但我希望它是OOP))
情况是这样的。
总的来说,OOP的这种贫困在其辉煌的背景下是引人注目的。为什么我们在声明变量和数组时不能像往常一样初始化它们?我不怀疑,理论家们会想出很多理论来证明我是个白痴,但还是......。我每次用OOP 写作时都有完全相同的想法))。
这也是一个想法,它可以放在任何类之外的全局范围内。
这更简单,但我希望它是OOP))
你可以
或者你毕竟是在寻找静态数组的初始化?
有趣的选择。
是调用一个 "带有构造函数的方法"?
有趣的选择。
,这是一个 "带有构造函数的方法 "调用吗?
不
这就是你初始化静态的方式。
你不需要初始化它,代码会是这样的。
这不是一个方法调用,而是A::Mass[5]类字段的全名。
但如果你删除了这一行,就会出现编译器错误--static需要在创建类实例之前分配内存--这就是黄线的作用。不
静态学的初始化是这样写的
你不必初始化它,这就是代码的样子。
谢谢你,原来这一行(静态 bool A::Mass[5];)无论如何也不能转到构造函数中去?
还是说这是在这种情况下初始化静力学的唯一方法?
上述帖子的补充
是的,静力学应该单独描述,@fxsaber 帮助我理解了它https://www.mql5.com/ru/forum/325418/page4#comment_16116740
你也可以在MQL5中初始化静态类。
即这一行(静态 bool A::Mass[5]; )不能转移到构造函数?
不,这是一个静态的类字段。 你需要提前分配内存,而不是在创建类实例的时候。
而你将把它作为一个普通的数组进一步使用
如果问题是关于单个字符串形式的初始化,那么Sergei的版本就是你要找的,只是你不需要静态的。
上述帖子的补充
是的,静力学应该单独描述,@fxsaber 帮助我理解了它https://www.mql5.com/ru/forum/325418/page4#comment_16116740
你也可以在MQL中初始化静态类。
谢谢,现在我试了一下,发现用这种方式访问数组是可行的。
说实话,我们有OOP,但我没有在《帮助》中看到它。很遗憾,它没有描述这样的细微差别。
,非常感谢每个人的回复!