Domande su OOP (programmazione orientata agli oggetti) - pagina 4

 
VOLDEMAR:

Si prega di spiegare le azioni

cioè

perché il segno (:) e cosa otteniamo con esso?

Questa è una tale inizializzazione.
 

Qual è la differenza?

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:

Si prega di spiegare le azioni

cioè

perché il segno (:) e cosa otteniamo con esso?



seguito da due punti seguito da una lista di inizializzazione
 
VOLDEMAR:

Qual è la differenza?

и



Differenza nel poter gestire la durata di vita di un oggetto
 
stringo:

La differenza è la capacità di controllare la durata di vita dell'oggetto

Capisco che nel caso di new si può cancellare l'oggetto in qualsiasi momento, ma se non è così, l'oggetto sarà cancellato solo quando la funzione in cui l'oggetto è chiamato esce, giusto?
 
hoz:

Deduco che nel caso di new, potete cancellare l'oggetto in qualsiasi momento, ma se non lo fate, l'oggetto sarà cancellato solo quando la funzione in cui l'oggetto è chiamato esce, giusto?


 
VOLDEMAR:

Consiglia un paio di libri di testo per favore... Il più facile e più utile secondo voi...

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

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

 
Come ereditare un solo metodo da una classe?
 
VOLDEMAR:
Come ereditare un solo metodo da una classe?
Perché?
 

Ora ho riprogettato la mia classe

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);
  }

E ha aggiunto l'eredità ... (sospetto di sbagliarmi) dalla classe vr_MarketInfo.

La classe vr_MarketInfo restituisce informazioni su Point, Digits per il simbolo e controlla il lotto per gli errori, e molte altre cose di cui ho bisogno per lavorare tra cui la registrazione in Excel e sul grafico

Quando si usa un metodo come sopra, quando si lavora in Primer.Primer.Primer() viene dato un elenco

Vorrei fare qualcosa di più abbreviato...

Motivazione: