OOPと手続き型プログラミングの比較 - ページ 7

 
Реter Konow:
なるほど、これは紛れもなくOOPを支持する論調ですね。顧客のバカさ加減とそれに対抗する時間のなさ、他人のアルゴリズムを改善する気のなさ(笑)はい、この場合はOOPが必要です。そうですね(笑)。
この場合でも、OOPはなくてもいいような気がします。
 
Реter Konow:
なるほど、これは紛れもないOOP賛成論ですね。顧客のバカさ加減とそれに対抗する時間のなさ、他人のアルゴリズムを改善する気のなさ(笑)はい、この場合はOOPが必要です。同感です)。

なぜバカなのか?通常の科学的アプローチでは、実験ができるようにすべてを手元に置いておくものです。

 
Реter Konow:
なるほど、これは紛れもなくOOPを支持する論調ですね。顧客のバカさ加減とそれに対抗する時間のなさ、他人のアルゴリズムを改善する気のなさ(笑)はい、この場合はOOPが必要です。同感です)。

シンプリファイ

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
struct str
  {
   int               Tickets;
   string            Symbols;
   int               Types;
   double            Lots;
   double            OpenPrice;
   double            StopLoss;
   double            TakeProfit;
   int               Slippage;
   string            Comments;
   int               Magic;
   datetime          Expiration;
   int               Digitss;
   double            Points;
   double            Profit;
   double            Commission;
   double            Swap;
   double            FullProfit;
  };

str Order[];
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class COrderMass
  {
protected:
   int               m_slippage;
   string            m_symbol;
   int               m_magic;
public:
   void              SetSymbol(string aSymbol)    {m_symbol   = aSymbol;}
   void              SetSlippage(int aSlippage)   {m_slippage = aSlippage;}
   void              SetMagic(int aMagic)         {m_magic    = aMagic;}

                     COrderMass(void);
                     COrderMass(string aSymbol,int aMagic,int aSlippage);
   void              UpdateOrdersMass();
  };
//+------------------------------------------------------------------+
COrderMass :: COrderMass(string aSymbol,int aMagic,int aSlippage):m_symbol(aSymbol),m_magic(aMagic),m_slippage(aSlippage)
  {

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void COrderMass :: UpdateOrdersMass()
  {
   int z=0;
   for(int i=OrdersTotal()-1; i>=0; i--)
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         if(OrderMagicNumber()==m_magic || m_magic==-1)
            if(OrderSymbol()==m_symbol || m_symbol=="")
              {
               ArrayResize(Order,z+1,1000);
               Order[z].Tickets       = OrderTicket();
               Order[z].Symbols       = OrderSymbol();
               Order[z].Types         = OrderType();
               Order[z].Lots          = OrderLots();
               Order[z].OpenPrice     = OrderOpenPrice();
               Order[z].StopLoss      = OrderStopLoss();
               Order[z].TakeProfit    = OrderTakeProfit();
               Order[z].Slippage      = m_slippage;
               Order[z].Comments      = OrderComment();
               Order[z].Magic         = OrderMagicNumber();
               Order[z].Expiration    = OrderExpiration();
               Order[z].Digitss       = (int)SymbolInfoInteger(Order[z].Symbols,SYMBOL_DIGITS);
               Order[z].Points        = SymbolInfoDouble(Order[z].Symbols,SYMBOL_POINT);
               Order[z].Profit        = OrderProfit();
               Order[z].Commission    = OrderCommission();
               Order[z].Swap          = OrderSwap();
               Order[z].FullProfit    = Order[z].Profit+Order[z].Commission+Order[z].Swap;
               z++;
              }
  }
//+------------------------------------------------------------------+
 

紳士的な論客の皆さん、こういう言い方をしましょう。OOPを理解していない、知らない、ならば、手続き型プログラミング対OOPではなく、関数へのポインタを持つ手続き型プログラミング対関数へのポインタを持たない手続き型プログラミングで議論しましょうよ。

 
Vladimir Pastushak:

シンプリファイ


というか、関数で解く

 

OOPは進歩です。それを受け入れて勉強を始めればいいんです。便利かもしれませんね。

Классы в C++ — урок 10
Классы в C++ — урок 10
  • 投票: 74
  • 2012.09.16
  • code-live.ru
Весь реальный мир состоит из объектов. Города состоят из районов, в каждом районе есть свои названия улиц, на каждой улице находятся жилые дома, которые также состоят из объектов. Практически любой материальный предмет можно представить в виде совокупности объектов, из которых он состоит. Допустим, что нам нужно написать программу для учета...
 
Vladimir Pastushak:

シンプリファイ


すべての未決済注文をすべてのパラメータとともに配列にロードするのは合理的な方法とは言えないかもしれません。

 
Dmitry Fedoseev:

なぜバカなのか?通常の科学的アプローチは、実験の可能性を考え、すべてを手元に置いておくことです。

バカとか普通のアプローチというのは、主観的な感覚です。私にとっては、純粋に愚かな行為です。でも、もしかしたら、私もちょっと違うかもしれませんね。このような形でトレーリングをすることはないだろうとは思っています。
 
Dmitry Fedoseev:

紳士的な論客の皆さん、こういう言い方をしましょう。OOPを理解していない、知らない、ならば、手続き型プログラミング対OOPではなく、関数へのポインタを持つ手続き型プログラミング対関数へのポインタを持たない手続き型プログラミングで議論しましょうよ。

構造化プログラミング、つまりプログラムを関数に分割することが必要なのかどうかを議論してみよう
 
Реter Konow:
バカか普通かは主観的な感覚です。私にとっては、純粋に愚かなことです。でも、私もちょっと違うかもしれませんね。このままではトレーリングをしないのは分かっています。

こちらの記事を読んで反応するhttps://www.mql5.com/ru/forum/213378/page7#comment_5596988