Errores, fallos, preguntas - página 1586

 

Error de compilación

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
};
 
Donde está lo "normal", debería haber un error. El operador está definido, no como const.
 
Anton Zverev:
Donde está lo "normal", debe haber un error. El operador está definido, no como const.
"Psiquiatra" obtiene una D hoy
 
A100:
El "psiquiatra" obtiene hoy una D
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:
Estamos hablando de la versión de escritorio de Five. No hay modo de aire.
¿Qué tiene que ver la terminal con esto? Tienes que desactivar Internet en el ordenador, y la acción más sencilla es activar el modo avión. O ir a la configuración y desactivar el adaptador de red.
 
Anton Zverev:

Aprenda a emparejar

 
Karputov Vladimir:
¡¿Qué tiene que ver la terminal?! Es necesario desactivar Internet en el ordenador, y la acción más sencilla es activar el modo "En el plano". O entra en la configuración y desactiva el adaptador de red.
¿Dónde está ese modo en Win7? Lo siento, pero soy un usuario muy débil.
 
Anton Zverev:
¿Dónde está ese modo en Win7? Lo siento, pero soy un usuario muy débil.
¿Win7? No conozco tal :).Tengo WIndows 10.
 
A100:
Aprende a emparejar.
Me encantaría aprender, pero Google no entiende en qué me he equivocado. ¿Podría resumir el punto de mi malentendido? Veo un error de compilación en tu ejemplo en la línea "normal". En mi opinión, el compilador debería haber soltado.
 
Anton Zverev:
Me encantaría aprender, pero Google no entiende...
Los verdaderos hombres duros no le preguntan a Google, le preguntan al fresno :))