错误、漏洞、问题 - 页 1297

 
_Konstantin_:

我试图覆盖它,但我得到一个为常量对象调用非常量方法的错误,因为非常量方法不能用于常量方法。我自己也搞不清楚如何正确覆盖虚拟常量方法。

出路是不在const方法中使用非const方法。而且你不能以任何方式推翻这一点。
 
A100:
解决办法是不在const方法中使用非const方法。而且没有办法跳过它。

嗯,问题就在这里,MQ几年来都不想改变比较虚拟方法,这个方法是要用在创建的排序机制中的,如果不重新定义这个方法,这个机制就根本无法运行。结果是,我不得不创建自己的排序机制,而不使用MQ的预定排序机制。

我从MQL4引入OOP的一开始就创建了自己的排序机制,并天真地认为这一点在MQL5中得到了解决,但我错了:)

 
_Konstantin_:

嗯,问题就在这里,MQ几年来都不想改变比较虚拟方法,这个方法是要用在创建的排序机制中的,如果不重新定义这个方法,这个机制就根本无法运行。结果是,我不得不创建自己的排序机制,而不使用MQ的预定排序机制。

我从MQL4引入OOP之初就创建了自己的排序机制,并天真地以为这一点在MQL5中已经得到了解决,但我错了:)

你不能使用const修改器,对吗?

class IntObject : public CObject
{
public:
   int Value;
   virtual int Compare(const CObject *node,const int mode=0) const
   {
      const IntObject* intObj = node;
      if(intObj.Value < Value)return MORE;
      else if(intObj.Value > Value)return LESS;
      return EQUAL;
   }
   IntObject();
   IntObject(int value){Value=value;}
};
 
C-4:

你的宗教不允许你使用const修改器吗?

它有一个不同类型的错误(为常数调用非常数方法 对象)

#define  NO_CONST
class IntObject : public CObject {
public:
   virtual int f(const CObject *node ) NO_CONST { return 0; }
   virtual int Compare(const CObject *node,const int mode=0) const { return f( node ); }
};
由于根本原因,它无法被克服
 
A100:

它有一个不同类型的错误(为常数调用非常数方法 对象)

由于根本原因,它无法被克服。
怎么可能不是呢?这足以使常量对象中要调用的方法成为常量。
 
C-4:
怎么可能不是呢?使常量对象中被调用的方法成为常量就足够了。
f()只有在它允许的情况下才可以成为常数
class IntObject : public CObject { public:
        int i;
   virtual int f(const CObject *node ) const { return i = 0; } //ошибка
};
 

我有一个问题,也许有人会告诉我一些东西!"。

我创建了一个离线合成图表1/EURUSD,GBPUSD,同时在Equity中设置了EURUSD-1 GBPUSD+1。

我得到了相同的图表和指标线,几乎没有区别https://charts.mql5.com/7/422/synthetic-m15-alpari-limited-6.png

我创建了第二个离线合成图表EURUSD,1/GBPUSD,并在权益中设置EURUSD+1 GBPUSD+1。

我得到的是不完全 相同的图表和指标线https://charts.mql5.com/7/422/synthetic-m15-alpari-limited-5.png

最有可能的原因是,欧元兑美元接近平价,这就是为什么它的反转与1/1.08的扭曲最小,而英镑兑美元离平价更远,这就是为什么1/1.48的扭曲更大。

你能告诉我倒转乐器的正确方法吗?

 

早些时候还可以,但现在我无法在Equity指标(附件)的Symbol_Side_A参数 中设置一行28个工具。

eurgbp-0.1 eurusd-0.1 gbpusd-0.1 eurchf-0.1 eurcad-0.1 euraud-0.1 eurnzd-0.1 eurjpy-0.1 audusd-0.1 nzdusd-0.1 usdcad-0.1 usdchf-0.1 usdjpy-0.1 gbpaud-0.1 GBPCAD-0.1 GBPJPY-0.1 GBPCHF-0.1 NZDJPY-0.1 AUDJPY-0.1 CADJPY-0.1 CHFJPY-0.1 AUDCAD-0.1 NZDCAD-0.1 AUDCHF-0.1 AUDNZD-0.1 CADCHF-0.1 NZDCHF-0.1 GBPNZD-0.1

部分数据由于某种原因被切断,没有显示在这一行。它只在我激活Symbol_Side_A行时出现。会有什么问题呢?请告知。

我的MT4-765终端。ALPARI和RVD有问题,而GKFX则没有问题!奇怪!

附加的文件:
 

让论坛不改变上传文件的名称真的这么难吗?就像在正常的论坛上一样!

我下载了上面的EquityHedgeGraph2(v670) 指标。那么为什么名字会被搞乱呢?

 
你不能在参数列表内发表评论 #define
#define  MACRO( X/*комментарий*/ )       (X) //ошибка компиляции
但它可能是必要的,特别是在有几个参数的情况下