错误、漏洞、问题 - 页 1979

 
Andrey Barinov:
谢谢你。我在文档中从未遇到过这种情况。你能指出来吗?
他自己想出了这个规则。文件中说。
  • private - 只允许从该类的方法中访问 该类的变量和方法。

因此,testfunc()只能(而且只能)从cA::方法中访问 -- 在本例中从cA::test()中访问

 
A100:
而且你是否尝试过用C++编译这个例子--或者只是一般的理论推理?

你有没有尝试过按照这个链接?你不仅可以在那里编译,还可以成功地执行这个例子。

 
Stanislav Korotky:

你有没有尝试过按照这个链接?你不仅可以在那里编译,还可以成功地执行这个例子。

那么为什么这样的代码不工作呢?

class cA;
class cB;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class cA
  {
private:
   int               m_var;
   int               m_func(void){return(this.m_var);}
public:
   void test(cB &b)
     {
      this.m_var=b.m_var;      // (1) 'm_var' - private member access error
       
      this.m_var=b.m_func();   // (2)  => norm
     }
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class cB : public cA
  {
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   cA A;
   cB B;

   A.test(&B);
//---
   return(INIT_SUCCEEDED);
  }


我看不出(1)和(2)之间有什么区别。

 
Stanislav Korotky:

你有没有尝试过按照这个链接?在那里,你不仅可以编译,还可以成功执行一个例子。

我们讨论的是上面给出的具体代码。如果你还没有尝试过,就写下
 
Andrey Barinov:

那么为什么这段代码不工作呢?

现在,第二位理论家将给你另一条规则,其模糊程度不亚于第一条规则

我建议将代码简化到极限

 
A100:
上面的具体代码正在讨论中。如果你没有试过,就这样写吧

就是上面的代码经过了C++语法的调整--实际上在私有成员访问讨论的背景下,留下了一对一的代码--而且该代码是有效的。这是对为什么在MQL中工作的问题的回答。你还需要什么?你还想让我尝试什么?不要自己乱写一通。

 
Stanislav Korotky:

就是上面的代码针对C++语法进行了调整--事实上,在私人成员访问讨论的背景下,它是一对一的--而且该代码是有效的。这是对为什么在MQL中工作的问题的回答。你还需要什么?你还想让我尝试什么?不要自己乱写一通。

你可以把它贴在这里,然后让我们比较一下你是如何修复它的(我不去看左边网站的链接)。如果你不知道如何正常沟通--(我是说废话),就不要写。

 
Andrey Barinov:

那么为什么这段代码不工作呢?


我看不出(1)和(2)之间有什么区别。

这是一个MQL错误。它在C++工作。写信给服务台。

 
Stanislav Korotky:

这是一个MQL错误。在C++ 中,它是有效的。写信给服务台。

明白了,谢谢。

只是,在第二个例子中,它很有趣。cB对m_var和m_func一无所知,它们对它来说是不可用的(即它们不能从cB内部调用),而它们可以从其他对象中调用......
 
A100:

把它贴在这里,然后让我们比较一下你是如何调整的(我不关注左派网站的链接)。如果你不知道如何正常沟通--(我是说废话),就不要写。

请勿无礼。你是第一个开始在这里进行异常交流的人。

整个互联网都是由左翼网站组成。你如何使用它?

这个特殊的网站和其他许多类似的网站大大简化了程序员的生活(允许他们测试片段、http-requests、检查映射网站等)--如何对待它们取决于每个人--不想要就不要用,但不要对其他人进行有关攻击。