Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Создавай темы на форуме и увеличивай рейтинг!
Artyom Kuraev
664
Artyom Kuraev 2016.05.01 21:27 

Здравствуйте. Подскажите, пож, как делается следующее. У меня есть класс class Price, в котором собирается вся основная и текущая информация об инструменте (digits, point, ask,bid,spread, min lot, max lot lot step и т.д.) и есть ряд других классов, в которых я хочу использовать сведения из этого класса. Но объявлять класс на глобальном уровне не совсем удобно и хотелось бы это делать внутри самой функции. Но надо избежать столкновения имен и перенасыщения памяти, т.е. класс должен быть сконструирован вначале вызова функции и удален (или должен быть вызван деструктор) по окончании функции. Но никак не могу догадаться, как это сделать.

предположим, я хочу использовать эти сведения в функции _OpenPosition():

int _OpenPosition(string SY,int CMD,double PP,int SLIPPAGE,double LOT,double SL=0,double TP=0,string COMMENT=NULL,int MN=0)
  {
   Price price(SY);

 // здесь код функции

   price.~Price();
  }

Но матерится на меня компилятор за такие действия. Есть ли решение, или я фигней страдаю?

Koldun Zloy
217
Koldun Zloy 2016.05.02 13:59  

И фигнёй то ты страдаешь, и решение есть.

Убери вызов деструктора и получится то что тебе нужно.

Деструктор, он тем и отличается от других функций, что его не надо вызывать явно.

Компилятор сам вставит вызов деструктора при выходе из функции.

/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий