Preguntas de POO (Programación Orientada a Objetos) - página 4

 
VOLDEMAR:

Por favor, explique las acciones

a saber:

¿por qué el signo (:) y qué conseguimos con él?

Esta es una inicialización de este tipo.
 

¿Cuál es la diferencia?

vr_trade trade;
//+------------------------------------------------------------------+
void OnTick()
  {
trade.Buy("EURUSD",0.01); // Пример открытия позиции возвращающей тиккет ордера.
  }
//+------------------------------------------------------------------+ 

и

vr_trade *trade;
//+------------------------------------------------------------------+
void OnInit()
{
trade = new vr_trade;
}
//+------------------------------------------------------------------+
void OnTick()
  {
trade.Buy("EURUSD",0.01); // Пример открытия позиции возвращающей тиккет ордера.
  }
//+------------------------------------------------------------------+ 
void OnDeinit(const int reason)
{
delete trade;
} 
 
VOLDEMAR:

Por favor, explique las acciones

a saber:

¿por qué el signo (:) y qué conseguimos con él?



seguido de dos puntos y una lista de inicialización
 
VOLDEMAR:

¿Cuál es la diferencia?

и



Diferencia en poder gestionar la vida útil de un objeto
 
stringo:

La diferencia es la capacidad de controlar la vida del objeto

Entiendo que en el caso de new se puede borrar el objeto en cualquier momento, pero si no se hace, el objeto sólo se borrará cuando salga la función en la que se llama al objeto, ¿no?
 
hoz:

Entiendo que en el caso de new, puedes borrar el objeto en cualquier momento, pero si no lo haces, el objeto sólo se borrará cuando salga la función en la que se llama al objeto, ¿no?


 
VOLDEMAR:

Recomendar un par de libros de texto por favor ... Lo más fácil y útil en su opinión...

http://rutracker.org/forum/viewtopic.php?t=4039549

http://rutracker.org/forum/viewtopic.php?t=4639528

 
¿Cómo heredar sólo un método de una clase?
 
VOLDEMAR:
¿Cómo heredar sólo un método de una clase?
¿Por qué?
 

Ahora he rediseñado mi clase

class vr_trade
  {
private:
   int               openorders(string sy,int typ,double lot,double price);
   string            tip(int typ);
   int               m_magic;
   int               m_slip;
public:
   int               Buy(string sy,double lot);
   int               Sel(string sy,double lot);
   int               BuyLimit(string sy,double lot,double price);
   int               SelLimit(string sy,double lot,double price);
   int               BuyStop(string sy,double lot,double price);
   int               SelStop(string sy,double lot,double price);
   void              MagSlip(int mag=-1,int slip=0);
   vr_MarketInfo    *Log;
                     vr_trade();
                    ~vr_trade();
  };
MqlTick st;
//+------------------------------------------------------------------+
vr_trade:: vr_trade()
  {
   Log=new vr_MarketInfo;
   MagSlip(-1,0);
  }

Y añadió la herencia ... ( sospecho que puedo estar equivocado ) de la clase vr_MarketInfo.

La clase vr_MarketInfo devuelve información sobre el punto, los dígitos para el símbolo y comprueba el lote para los errores, y muchas otras cosas que necesito para el trabajo incluyendo el registro en Excel y en el gráfico

Cuando se utiliza un método como el anterior se da una lista cuando se trabaja en Primer.Primer.Primer()

Me gustaría hacer algo más abreviado...