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/en/forum/213378/page7#comment_5596988