错误、漏洞、问题 - 页 2721 1...271427152716271727182719272027212722272327242725272627272728...3184 新评论 fxsaber 2020.04.23 05:06 #27201 Koldun Zloy: 这是不可能的。如果你不打算改变它,这并不意味着你必须做出改变。让变量成为私有变量就足够了。 如果你能从中得到一些东西,那是合乎逻辑的,但你只是给自己制造了一个问题。 const是一个额外的控制。否则,你根本就不必在语言中引入这个指令。 公共常量字段的好处是,它是可读的(可以通过引用传递)。但错误地改变它是被排除的。 在编写程序时,const对我帮助很大。这是第一次出现的问题。 在不能写的地方使用this和:: 也有帮助。 Koldun Zloy 2020.04.23 05:24 #27202 fxsaber: const是一个额外的控制。否则,我们可以完全避免在语言中引入这一指令。 公共常量字段的好处在于它是可读的(可以通过引用传递)。但错误地改变它是被排除的。 在编写程序时,const对我帮助很大。这是第一次出现的问题。 HH 在不能写的地方使用this和:: 也有帮助。 使得该变量成为私有变量。使用一个函数进行读取,不需要通过引用传递const int。 fxsaber 2020.04.23 05:32 #27203 Koldun Zloy: 使得该变量成为私有变量。使用一个函数来读取它。 没有必要通过引用来传递 const int。 你提议干脆不理会常态。 Koldun Zloy 2020.04.23 05:36 #27204 fxsaber: 你的意思是说,const被简单地忽略了。 不,但在这个特定的情况下不需要。 [删除] 2020.04.23 05:58 #27205 伙计,你无中生有。"老鼠哭了又哭,却一直在咬着仙人掌"。 Igor Makanu 2020.04.23 09:06 #27206 fxsaber: 我做了实验,一般来说,无论你怎么看,任何解决方案都会有 "缺陷"。 如果我们谈论的是执行速度和控制对结构域的访问,你可以写一个丑陋的解决方案,但它会解决这个问题 我将完全放弃结构中的静态方法--它们没有任何意义,代码仍将是混乱的和不符合逻辑的。 它看起来像这样。 int tmp[] = {1,2,3,99}; struct A { private: static int count; public: const int a; A():a(tmp[count++]) {} }; static int A::count = 0; //+------------------------------------------------------------------+ void OnStart() { A a[ArraySize(tmp)]; for(int i=0;i<ArraySize(a);i++) Print(a[i].a); } ....da,也不需要计数计数器,事实上,你需要将A[ArraySize(tmp)];包裹在一个宏替换中,创建一个结构数组并删除一个临时数组tmp Stanislav Korotky 2020.04.23 14:37 #27207 有两个程序同时在同一个文件上工作。写的那个使用FILE_READ|FILE_WRITE|FILE_BIN|FILE_SHARE_READ 标志。读取的是 - FILE_READ|FILE_BIN|FILE_SHARE_WRITE|FILE_SHARE_READ。尽管第一个程序使用FileFlush定期保存文件,但第二个程序只在文件被打开时看到文件的长度。试着来回做FileSeek - 没有帮助。 问题:如何使读取文件的程序捡起要覆盖的数据? A100 2020.04.23 17:03 #27208 我总结一下。 struct A { const int a; A() {} }; void OnStart() { A a1; //(1) нормально const int a2; //(2) Error: 'a2' - 'const' variable must be initialized } 1和2之间有什么区别? Igor Makanu 2020.04.23 17:12 #27209 A100: 我总结一下。 1和2之间的区别是什么? 我希望有一些内置的机制来初始化这种情况,但那里什么也没有。 struct A { const int a[10]; A() {ArrayPrint(a);} //-396985669 32758 -1490812928 32757 2147360768 0 -1681390008 493 0 0 }; //+------------------------------------------------------------------+ void OnStart() { A a1; } //+------------------------------------------------------------------+ ZS:在这里,编译器看到 void f() { const int x; //'x' - 'const' variable must be initialized } A100 2020.04.23 17:16 #27210 Igor Makanu: 我曾希望有一些内置的机制来初始化这种情况,但那里什么也没有。 ZS:在这里,编译器看到 原则上不应该有这种情况--这个问题应该在编译器层面就已经解决了(如C++)。而在这里,它是一种可能,因此,讨论了好几页 1...271427152716271727182719272027212722272327242725272627272728...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这是不可能的。如果你不打算改变它,这并不意味着你必须做出改变。让变量成为私有变量就足够了。
如果你能从中得到一些东西,那是合乎逻辑的,但你只是给自己制造了一个问题。const是一个额外的控制。否则,你根本就不必在语言中引入这个指令。
公共常量字段的好处是,它是可读的(可以通过引用传递)。但错误地改变它是被排除的。
在编写程序时,const对我帮助很大。这是第一次出现的问题。
在不能写的地方使用this和:: 也有帮助。
const是一个额外的控制。否则,我们可以完全避免在语言中引入这一指令。
公共常量字段的好处在于它是可读的(可以通过引用传递)。但错误地改变它是被排除的。
在编写程序时,const对我帮助很大。这是第一次出现的问题。
HH 在不能写的地方使用this和:: 也有帮助。
使得该变量成为私有变量。使用一个函数进行读取,不需要通过引用传递const int。
使得该变量成为私有变量。使用一个函数来读取它。 没有必要通过引用来传递 const int。
你提议干脆不理会常态。
你的意思是说,const被简单地忽略了。
不,但在这个特定的情况下不需要。
我做了实验,一般来说,无论你怎么看,任何解决方案都会有 "缺陷"。
如果我们谈论的是执行速度和控制对结构域的访问,你可以写一个丑陋的解决方案,但它会解决这个问题
我将完全放弃结构中的静态方法--它们没有任何意义,代码仍将是混乱的和不符合逻辑的。
它看起来像这样。
....da,也不需要计数计数器,事实上,你需要将A[ArraySize(tmp)];包裹在一个宏替换中,创建一个结构数组并删除一个临时数组tmp
有两个程序同时在同一个文件上工作。写的那个使用FILE_READ|FILE_WRITE|FILE_BIN|FILE_SHARE_READ 标志。读取的是 - FILE_READ|FILE_BIN|FILE_SHARE_WRITE|FILE_SHARE_READ。尽管第一个程序使用FileFlush定期保存文件,但第二个程序只在文件被打开时看到文件的长度。试着来回做FileSeek - 没有帮助。
问题:如何使读取文件的程序捡起要覆盖的数据?
我总结一下。
1和2之间有什么区别?
我总结一下。
1和2之间的区别是什么?
我希望有一些内置的机制来初始化这种情况,但那里什么也没有。
ZS:在这里,编译器看到
我曾希望有一些内置的机制来初始化这种情况,但那里什么也没有。
ZS:在这里,编译器看到
原则上不应该有这种情况--这个问题应该在编译器层面就已经解决了(如C++)。而在这里,它是一种可能,因此,讨论了好几页