错误、漏洞、问题 - 页 1920 1...191319141915191619171918191919201921192219231924192519261927...3184 新评论 A100 2017.07.02 15:10 #19191 fxsaber:祖先 "看到的是受保护的/私有的字段,而不应该看到。而公共领域:应该/不应该?组合器。如果我们加入结构B; 没有影响 fxsaber 2017.07.02 15:12 #19192 A100:而公众:应该/不应该? 公共静态领域 - 必须。 A100 2017.07.02 15:18 #19193 fxsaber: 公共静态场是必须的。 总结一下:基类看不到派生类的非静态字段。同时,基类不会看到派生类的保护静态,而是看到公共静态。这个规则是你自己发明的吗? fxsaber 2017.07.02 15:21 #19194 A100: 总结一下:基类不会看到派生类的非静态字段。同时,基类不会看到派生类的保护性静态,而是看到公共静态。这个规则是你自己发明的吗?我很难说这种概括是在什么地方做出的。我自己丝毫没有这个想法。任何类都能看到任何其他类的公共静态字段/方法。基类永远不会看到派生(公有继承)的受保护/私有(静态--无所谓)字段/方法。派生类(公有继承)永远不会看到基类的私有字段/方法,而总是看到受保护的/公共的。 A100 2017.07.02 16:07 #19195 fxsaber:任何类都能看到任何其他类的公共静态字段/方法。 最后,问题归结为这一点。在MQL中,派生类的公共静态字段/方法在基类中可用,这是否正确? fxsaber 2017.07.02 16:11 #19196 A100: 最后,问题归结为这一点。派生类的公共静态字段/方法在MQL中可用,这是否正确?这不仅对基数/导数情况是正确的,而且对一般的任何类都是正确的。 A100 2017.07.02 16:27 #19197 fxsaber:这不仅对基数/导数情况是正确的,而且对所有的类都是正确的。这个问题并不是无中生有的#ifdef __cplusplus struct B; struct A { int f() { return B::i; } //error E2451 }; struct B : A { static int i; }; int B::i; #endif 因此需要详细检查 A100 2017.07.02 17:49 #19198 fxsaber:任何类都能看到任何其他类的公共静态字段/方法。...包括基类。因此,在MQL中存在以下矛盾struct A { static int i; }; int A::i; struct B : private A {}; struct C : B { C() { Print( A::i ); } //error: 'i' - private member access error }; 无错误的C++ TheXpert 2017.07.02 18:19 #19199 A100:在C++中,默认情况下,结构中的成员是公开的,在mql中是私有的,与类中的成员相同。是的,我错了,C++中的正向声明是缺失的,我们需要定义 fxsaber 2017.07.02 18:24 #19200 A100:...包括基本的一个。因此,在MQL中存在以下矛盾 无错误的C++是的,这是MQL私有继承中的一个错误。 1...191319141915191619171918191919201921192219231924192519261927...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
祖先 "看到的是受保护的/私有的字段,而不应该看到。
而公共领域:应该/不应该?
如果我们加入
结构B;
而公众:应该/不应该?
公共静态场是必须的。
总结一下:基类不会看到派生类的非静态字段。同时,基类不会看到派生类的保护性静态,而是看到公共静态。这个规则是你自己发明的吗?
我很难说这种概括是在什么地方做出的。我自己丝毫没有这个想法。
任何类都能看到任何其他类的公共静态字段/方法。
基类永远不会看到派生(公有继承)的受保护/私有(静态--无所谓)字段/方法。
派生类(公有继承)永远不会看到基类的私有字段/方法,而总是看到受保护的/公共的。
任何类都能看到任何其他类的公共静态字段/方法。
最后,问题归结为这一点。派生类的公共静态字段/方法在MQL中可用,这是否正确?
这不仅对基数/导数情况是正确的,而且对一般的任何类都是正确的。
这不仅对基数/导数情况是正确的,而且对所有的类都是正确的。
这个问题并不是无中生有的
因此需要详细检查任何类都能看到任何其他类的公共静态字段/方法。
...包括基类。因此,在MQL中存在以下矛盾
无错误的C++在C++中,默认情况下,结构中的成员是公开的,在mql中是私有的,与类中的成员相同。
是的,我错了,C++中的正向声明是缺失的,我们需要定义
...包括基本的一个。因此,在MQL中存在以下矛盾
无错误的C++是的,这是MQL私有继承中的一个错误。