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

 
Motoellesse:

Помогите установить META TRADER 4 НА OS MAVERICKS, СКАЧАЛА ВСЕ ПРОГРАММЫ,PLAY ON MAC^ВСЕ НОВОЕ, А ВЫДАЕТ ОШИБКУ.КАТАСТРОФА КАКАЯ -ТО

/*модератор: прилжоите текст ошибки файлом*/

 
Motoellesse:

2 - до отладки.

3- после. 

Может там есть отличия , я вообще ничего не понимаю)

Спасибо большое) 

Файлы:
 

Ошибка компиляции

class A {
public:
        void f() const { a = 1; } //member of the constant object cannot be modified
        static int a;
};
int A::a = 0;

в то время как const не должен следить за static

Кроме того это мнимая защита, поскольку static модифицируется обычной функцией h() и A::f() const об этом даже не узнает

class A {
public:
        void f() const { h(); } //все равно поменяли значение (а)
        static int a;
};
int A::a = 0;

void h()
{
        A::a = 1;
}
 
A100:

Ошибка в работе виртуальных функций

Результат: A::f(), а должен быть - B::f()

Спасибо за сообщение, исправлено.
 
A100:

Ошибка компиляции

в то время как const не должен следить за static

Кроме того это мнимая защита, поскольку static модифицируется обычной функцией h() и A::f() const об этом даже не узнает

Спасибо за сообщение, исправлено.
 

Ошибка компиляции 358 во всех случаях вызова h( A* a)

class A {
};

class B {
public:
	B() : a1( NULL ), a2( NULL ), a3( NULL ), a4( NULL ) {}
        void f() const {
                h( a1 ); // не обоснована (1)
                h( a2 ); // не обоснована (2)
                h( a3 ); //    обоснована (3)
                h( a4 ); //    обоснована (4)
        }
              A *       a1;
              A * const a2;
        const A *       a3;
        const A * const a4;
};

void h( A* a )
{
}

Обоснована только в (3) и (4), поскольку не h( const A* a)

Ранее была уже исправлена похожая ситуация https://www.mql5.com/ru/forum/1111/page1218#comment_1058402, но тут вероятна иная причина, поскольку на возникновение ошибки влияет наличие const в объявлении void f() const, а там не было функций-членов 

 

В build 976 не компилируется (ошибка 358, но отличается от ранее описанных ранее тем, что в build 975 ошибок не возникало)   

class A {};
struct S { int s; };

void h1( A* a ) {}
void h2(       S& s ) {}
void h3( const S& s ) {}

class B {
public:
        void    f1() const { h1( this.a ); } //не обоснованная и возникла только в build 976
//      void    f2() const { h2( this.s ); } //   обоснованная ошибка в build 976
        void    f3() const { h3( this.s ); } //нормально
        A* a;
        S  s;
};
Возможно связано с тем, что в build 976 была исправлена ошибка связанная с тем, что обычная функция, вызванная из const метода класса могла модифицировать члены класса переданные ей по не const& ссылке. Но здесь членом класса является указатель, и его значение гарантированно не будет изменено при вызове h( A* a), а может быть лишь изменено при объявлении h( A* &a )
 
A100:

В build 976 не компилируется (ошибка 358, но отличается от ранее описанных ранее тем, что в build 975 ошибок не возникало)   

Возможно связано с тем, что в build 976 была исправлена ошибка связанная с тем, что обычная функция, вызванная из const метода класса могла модифицировать члены класса переданные ей по не const& ссылке. Но здесь членом класса является указатель, и его значение гарантированно не будет изменено при вызове h( A* a), а может быть лишь изменено при объявлении h( A* &a )
Спасибо за сообщение, исправлено.
 
lezzvie:

Лучше конечно это спрашивать на форуме сайта www.mql4.com.

Все делали по инструкции, как в этой статье? — https://www.mql5.com/ru/articles/1356

да, конечно)

ладно; спрошу там. спасибо 

 
В каком порядке выводятся приглашения в друзья в профиле? В порядке поступления или как-то еще? У меня такое впечатление, что количество приглашений увеличивается, а первые и последние имена - прежние.