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

 
Vladimir Makhnin #:
Привет. Как будет выглядеть код советника который открывает сделку и сразу же выставляет тейк на ближайшую котировку? После закрытия сразу же новую открывает 
Ты темой ошибся.
 
В одном случае есть сообщение об ошибке, а в другом нет:
class A {
    void f() {}
};
class B : A {
    class C {
        void g( B *b ) { b.f(); } //(1)//нормально ???
    };
        void g( B *b ) { b.f(); } //(2)//Error: 'A::f' - cannot access private member function
};

А какая принципиальная разница между (1) и (2) ?

 

У кого есть видеокарта 1660S - напишите, пожалуйста, в личку, очень нуждаюсь в помощи.

Требуется проверить код на OpenCL, который на некоторых других картах работает корректно, а на этой (у меня 1660S) даёт сбой с временным зависанием ОС.

Может дело в карте, а может в терминале - хочется разобраться.

 
Aleksey Vyazmikin #:

У кого есть видеокарта 1660S - напишите, пожалуйста, в личку, очень нуждаюсь в помощи.

Требуется проверить код на OpenCL, который на некоторых других картах работает корректно, а на этой (у меня 1660S) даёт сбой с временным зависанием ОС.

Может дело в карте, а может в терминале - хочется разобраться.

Никто мне не написал - печально.

Карта подойдет всей линейки, я думаю.

В питоне такое же поведение оказалось, к сожалению, так что дело не в терминале.

 
Aleksey Vyazmikin #:

Никто мне не написал - печально.

Карта подойдет всей линейки, я думаю.

В питоне такое же поведение оказалось, к сожалению, так что дело не в терминале.

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

В своё время даже проги были специальные, для тестирования именно видеопамяти, видно было, насколько всё плохо.

Может, с этим связано?

 
JRandomTrader #:

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

В своё время даже проги были специальные, для тестирования именно видеопамяти, видно было, насколько всё плохо.

Может, с этим связано?

Думал про память, но в других приложениях такого сбоя нет.

 
A100 #:
В одном случае есть сообщение об ошибке, а в другом нет:

А какая принципиальная разница между (1) и (2) ?

По умолчанию, методы класса приватны. В классе B вы вызываете приватную функцию f из класса A. Для того, что бы из класса B можно было вызывать функцию f она должна быть protected.

 
DrSky #:

По умолчанию, методы класса приватны. В классе B вы вызываете приватную функцию f из класса A. Для того, что бы из класса B можно было вызывать функцию f она должна быть protected.

Вы объясните почему тогда в (1) случае компилируется без ошибки. В чем отличие от (2) ?

 
A100 #:

Вы объясните почему тогда в (1) случае компилируется без ошибки. В чем отличие от (2) ?

В том, что компилятор MQL5 плохо умеет во вложенные классы и все равно собирает не смотря на то, что f является приватным методом. Т.е. конструкция 1 не верна и имеет место ошибка в компиляторе.

Все, что вам надо сделать что бы код стал правильным - добавить "protected:" над обьявлением f. Еще класс в классе стоит использовать только в случае крайней необходимости.
 
Вадим Калашников #:
В том, что компилятор MQL5 плохо умеет во вложенные классы и все равно собирает не смотря на то, что f является приватным методом. Т.е. конструкция 1 не верна и имеет место ошибка в компиляторе. Все, что вам надо сделать что бы код стал правильным - добавить "protected:" над обьявлением f.

Это баг-репорт был, если вы не поняли

Вадим Калашников #:
Еще класс в классе стоит использовать только в случае крайней необходимости.

Слишком примитивно мыслите

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