Ошибки, баги, вопросы - страница 2297

 
A100:
Тогда попробуйте так:

Результат:

1:POINTER_AUTOMATIC
1:POINTER_DYNAMIC
2:POINTER_DYNAMIC
2:POINTER_AUTOMATIC

Спасибо! Вполне себе решение.

только так наверное лучше, чтоб компилятор не ругался:

class B  { public:
                     B(void *b) {d=b;}
                    ~B() { delete d; }
   void             *d; };

Это чтож получаеся - баг что-ли?
При создании экземпляра класса через new не вызывает деструктор.

И что - это единственное решение создавать специальный класс для вызова деструктора? Или все же можно обойтись без этого?

 
Andrey Barinov:

Создаем оператором new, а удаляем оператором delete

Вопрос в том, что бы поместить delete в деструктор, но при создания экземпляра класса через new (A *a=new A;) деструктор не вызывается.

 
aleger:

Можно ли, а если да, то как, вывести в любом индикаторе ЗигЗаг соответствующие значения ценовых экстремумов High и Low,

обеспечив им стабильную привязку и непосредственную близость к образовавшимся вершинам и низинам? 

Смотрите пример из OBJ_TEXT

 

Спасибо. 
Да здесь как раз об этом написано.

Все объекты, созданные выражением указатель_объекта=new Имя_Класса, обязательно должны быть впоследствии уничтожены оператором delete(указатель_объекта). 
Если по каким то причинам такая переменная по окончании работы программы не была уничтожена оператором delete, то об этом будет выведено сообщение в журнал "Эксперты". 
Можно объявить несколько переменных и всем им присвоить указатель одного объекта.
Если динамически создаваемый объект имеет конструктор, то этот конструктор будет вызван в момент выполнения оператора new. Если объект имеет деструктор, 
то деструктор будет вызван в момент выполнения оператора delete.

Значит не баг, а такая особенность, в результате чего получаестя замкнутный круг. 
Если я хочу автоматизировать процесс удаления динамического объекта, то деструктор вызывается только при delete, поэтому бесполезно delete засовывать в сам деструктор. 
Но автоматику можно реализовать через другой экземпляр другого класса, как подсказал @A100 здесь.

 
aleger:

Спасибо за подсказку. Уже замаялся читать и пробовать, пробовать и читать. Работающий бы пример какой-то с ЗигЗагом увидеть...

Такой, как на моём аватаре с зигзагом, но с ПРАВИЛЬНОЙ привязкой верхних экстремумов, поскольку с привязкой нижних всё в порядке!

Способ привязки через k=(WindowPriceMax()-WindowPriceMin())/30 при больших изменениях размеров окна себя не оправдывает, надо бы что-то другое...  


В примере OBJ_TEXT и верхняя и нижняя привязка. Перейдите по ссылке, запустите пример ...

 
Nikolai Semko:

Значит не баг, а такая особенность, в результате чего получаестя замкнутный круг. 

Вам уже ранее подсказали, что способ решения контроля за выделенными неуправляемыми ресурсами - это использования умных указателей. Полная аналогия с С++.
Возможно проблема в том, что решение не преподнесли на блюдечке, ну уж извините...


Забить в поисков сайта "shared_ptr" и перейти по первому же результату может каждый, это не сложно, настоятельно рекомендую попробовать.

 
Sergey Dzyublik:

Забить в поисков сайта "shared_ptr" и перейти по первому же результату может каждый, это не сложно, настоятельно рекомендую попробовать.

затем обнаружить что на mql ни один из стандартных умных указателей нормально не реализуем, потому что нет ссылок, разыменования и стрелки.

 
TheXpert:

затем обнаружить что на mql ни один из стандартных умных указателей нормально не реализуем, потому что нет ссылок, разыменования и стрелки.

Если вы намекаете на невозможность реализовать счетчик подсчета активных ссылок, то там автор пишет о своем подходе по решению данной проблемы:

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Удаляется счетчик ссылок в shared_ptr

vasya-gaykin, 2016.03.12 20:02

new int нужен для разделения счетчика между Pointer'ами, по другому эта задача не решается.

Pointer и есть контейнер для управления объектами Object

Решаемая задача парсинг JSON; вместо Object'a наборы классов JSON, JSONObject, JSONArray, JSONString...


 
Всем добрый день. Никто не знает, существует ли возможность запуска тестера из эксперта? Хочу использовать данные статистики в логике эксперта.
 

Как вызвать окно Соглашения в терминале? Например, когда двигаешь первый раз отложенный ордер мышкой, то появляется на белом фоне Соглашение с большим количество букв. Там, вроде, предлагается принять его или отказаться. Никак не получается его увидеть сейчас.


Ситуация такая, что не могу понять, как смогла отжаться кнопка Автоторговли в терминале. Единственное, что вспомнил, так это случайный зацеп мышкой отложенного ордера. Сразу появилось это Соглашение, которое не читав, проигнорировал. Это единственное подозрение, что могло вызвать отключение Автоторговли. Но воспроизвести не могу, т.к. не повторить ситуацию с этим Соглашением. Где сидит этот флаг, чтобы его вырубить и снова увидеть эти много букв?