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

 
DrSky #:

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

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

 
A100 #:

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

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

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

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

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

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

 
Вадим Калашников #:
Еще класс в классе стоит использовать только в случае крайней необходимости.
Это распространенная практика.
 
Ошибка при выполнении:
class A {
    static const int i, j;
public:
    A() { Print( i+j ); }
} *a = new A;
const int A::i=1, A::j=i;
void OnStart()
{
    delete a;
}
Результат:   1
Ожидалось: 2
 
Aleksey Vyazmikin #:

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

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

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

у вас же ферма из компов, почему на другом не проверите?

 
lynxntech #:

у вас же ферма из компов, почему на другом не проверите?

У меня всего две видеокарты для вычислений.

Однако удалось, проверить на 1060 - такой же эффект. И теперь не знаю, что бы это значило. На 4080 работает корректно и на HD7950 всё хорошо.

 
Aleksey Vyazmikin #:

У меня всего две видеокарты для вычислений.

Однако удалось, проверить на 1060 - такой же эффект. И теперь не знаю, что бы это значило. На 4080 работает корректно и на HD7950 всё хорошо.

я бы в Oracle VM VirtualBox поставил систему с нуля и там проверил,  причем не древнее win10

 
lynxntech #:

я бы в Oracle VM VirtualBox поставил систему с нуля и там проверил,  причем не древнее win10

Да, на десятке работает.

 

здравствуйте! не могу подключить демку фтмо в метатрейдер(отсутствуют сигналы и vps) в чем может быть проблема? в мобильном приложении счет подключается и работает. 

стандартная демка метатрейдера тоже работает.