Errori, bug, domande - pagina 1586

 

Errore di compilazione

class A { public:
        void operator[]( int i ) {}
};
class B { public:
        B() : a( new A ) {}
        ~B() { delete a; }
        A *a;
        void f() const { a.operator[]( 0 ); } //нормально
        void g() const { a[ 0 ]; }            //error: call non-const method for constant object
        void h() const { (*a)[ 0 ];           //error: call non-const method for constant object
};
 
Dove c'è "normale", dovrebbe esserci un errore. L'operatore è definito, non come const.
 
Anton Zverev:
Dove c'è "normale", ci deve essere un errore. L'operatore è definito, non come const.
"Psichiatra" prende una D oggi
 
A100:
Lo 'psichiatra' prende una D oggi
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:
Stiamo parlando della versione desktop di Five. Non c'è la modalità aria.
Cosa c'entra il terminale? È necessario disattivare internet sul computer, e l'azione più semplice è attivare la modalità aereo. Oppure andate nelle impostazioni e disabilitate l'adattatore di rete.
 
Anton Zverev:

Impara come abbinare

 
Karputov Vladimir:
Cosa c'entra il terminale? È necessario disabilitare internet sul computer, e l'azione più semplice è quella di attivare la modalità "On Plane". Oppure vai nelle impostazioni e disattiva l'adattatore di rete.
Dov'è quella modalità in Win7?! Mi dispiace, ma sono un utente molto debole.
 
Anton Zverev:
Dov'è quella modalità in Win7?! Mi dispiace, ma sono un utente molto debole.
Win7? Non lo so :). Ho WIndows 10.
 
A100:
Imparare ad abbinare.
Mi piacerebbe imparare, ma Google non capisce dove ho sbagliato. Potrebbe riassumere il punto del mio malinteso? Vedo un errore di compilazione nel tuo esempio nella linea "normale". Nella mia mente, il compilatore avrebbe dovuto sbottare.
 
Anton Zverev:
Mi piacerebbe imparare, ma Google non capisce ...
I veri duri non chiedono a Google, chiedono al frassino :))