Вопросы по ООП (Объектно Ориентированному Программированию ) - страница 4

 
VOLDEMAR:

Обьясните пожалуйста действия

а именно

зачем знак (:) и что мы этим знаком получаем ?

Это такая инициализация.
 

В чем разница ?

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:

Обьясните пожалуйста действия

а именно

зачем знак (:) и что мы этим знаком получаем ?



за двоеточием следует список инициализации
 
VOLDEMAR:

В чем разница ?

и



Разница в возможности управлять временем жизни объекта
 
stringo:

Разница в возможности управлять временем жизни объекта

Я так понимаю, что в случае с new можно удалить объект в любой момент, а если без него объект удалится только по выходу из функции, в которой вызван объект, верно?
 
hoz:

Я так понимаю, что в случае с new можно удалить объект в любой момент, а если без него объект удалится только по выходу из функции, в которой вызван объект, верно?


Да
 
VOLDEMAR:

Порекомендуйте пару учебников пожалуйста ... Наиболее простые и полезные на ваш взгляд ...

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

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

 
Как из одного класса унаследовать только один метод ?
 
VOLDEMAR:
Как из одного класса унаследовать только один метод ?
Зачем?
 

сейчас я переделал свой класс

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

И добавил наследование ... ( Подозреваю что могу ошибаться ) из класса vr_MarketInfo

класс vr_MarketInfo возвращает инфу о Point, Digits для символа а так же проверяет лот на ошибки, и многое другое необходимое мне для работы в том числе ведет лог в екселе и на чарте

При использовании метода как Выше выдается список при работе в советнике Primer.Primer.Primer()

Я бы хотел делать как то более сокращенно все...

Причина обращения: