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

[Удален]  
A100:
"Психиатр" сегодня получает двойку
class A { public:
        void operator[]( int i ) const {} // const добавил
};
class B { public:
        B() : a( new A ) {}
        ~B() { delete a; }
        A *a;
        void f() const { a.operator[]( 0 ); } // нет ошибки
        void g() const { a[ 0 ]; }            // нет ошибки
};
 
Anton Zverev:
Про десктопную же версию пятерке говорим. Там нет авиарежима.
Причём терминал?! На компьютере нужно отключить интернет, а самое простое действие - это включение режима "В самолёте". Ну или зайти в настройки и отключить сетевой адаптер.
 
Anton Zverev:

Учите матчать

[Удален]  
Karputov Vladimir:
Причём терминал?! На компьютере нужно отключить интернет, а самое простое действие - это включение режима "В самолёте". Ну или зайти в настройки и отключить сетевой адаптер.
А где такой режим в Win7?! Извините, но я очень слабый юзер.
 
Anton Zverev:
А где такой режим в Win7?! Извините, но я очень слабый юзер.
Win7? Не знаю такой :) .У меня WIndows 10.
[Удален]  
A100:
Учите матчать
Я бы рад учиться, но гугл не понимает, в чем ошибся. Могли бы Вы кратко изложить суть моего непонимания? Я вижу ошибку компилятора в Вашем примере в строке "нормально". По моему разумению, компилятор должен был ругнуться.
 
Anton Zverev:
Я бы рад учиться, но гугл не понимает ...
Настоящие суровые мужики спрашивают не у гугла, а у ясеня :))
 
Anton Zverev:
Я бы рад учиться, но гугл не понимает, в чем ошибся. Могли бы Вы кратко изложить суть моего непонимания? Я вижу ошибку компилятора в Вашем примере в строке "нормально". По моему разумению, компилятор должен был ругнуться.
const здесь распространяется лишь на указатель, а не на объект по этому указателю
[Удален]  
Alexey Navoykov:
const здесь распространяется лишь на указатель, а не на объект по этому указателю

Понимаю, что Вы имеете в виду. Но считаю, что должна быть ошибка.

Если бы это был не MQL5, то надо было писать что-то типа такого

(*a).operator[]( 0 );
a->operator[]( 0 );

и тогда могли бы возникнуть вопросы. Но это MQL5... защита от дурака оправдана, ИМХО. 

[Удален]  

Alexey Navoykov:
const здесь распространяется лишь на указатель, а не на объект по этому указателю

class A { public:
        void operator[]( int i ) {} // const отсутствует
};
class B { public:
        const A *a; // к чему относится здесь const?
        B(){a = new A; // явно не к указателю - нет ошибки
            a[0];} //логично: 'operator[]' - call non-const method for constant object
        ~B() { delete a; }
};