Errores, fallos, preguntas - página 2359
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Lo he comprobado especialmente para ti, teniendo en cuenta
Está bien DJ.
¿Qué compilador utiliza?
Estoy en VS 2010:
binario '=' : no se ha encontrado ningún operador que tome un operando a la derecha de tipo 'A' (o no hay ninguna conversión aceptable)
p.d. No entiendo muy bien qué significa "con consideración". Se trataba de la aceptabilidad de copiar implícitamente una clase base en una clase derivada.
En Visual Studio, mi ejemplo también funciona. Me refería al operador de copia explícita y lo explicaba con el código.
Lo escribí por si acaso, para que si desactiva el explícito, no lo desactive accidentalmente al mismo tiempo
En Visual Studio, mi ejemplo también funciona. Me refería al operador de copia explícita y lo explicaba con el código.
No me refería al operador explícito. Hablaba de la inadmisibilidad del operador implícito en este caso que llamaste "estrechez de miras" y no es así.
Si necesitas hacer una copia, primero debes hacer un casting explícito de b al tipo correcto en C++. Ya que tal copia es una violación de la encapsulación de objetos. Por eso, el tipo implícito debería estar completamente descartado.
Me refería a un operador de copia explícito y lo explicaba en código.
Dudo que el compilador los separe (en el contexto del código) en explícitos e implícitos. De lo contrario, sería fácil arreglarlo
Por cierto, el tipo de operador parece estar bien
Primero busca el operador B::, si está ausente, entonces busca el operador A::, si está ausente allí también, entonces considera su deber cumplido y no hace nada (aunque el puntero se rompa como resultado) :)
si tampoco está, entonces considera su deber cumplido y no hace nada (aunque el puntero acabe roto) :)
¿Por qué no hace nada? Copia por el operador implícito (automático) operator=(const A&), lo que no debería hacer.
Y por último quitar ese asterisco después de la B, hace daño a la vista ) Ya lo hemos solucionado todo con este fallo.
Y por último quita ese asterisco después de la B, hace daño a la vista ) Ya se ha dado cuenta de todo con este bicho.
Personalmente, las variables de los objetos sin asteriscos me resultan molestas )) Uno de los errores desagradables es escribir A a=new A en lugar de *a y no entender lo que está mal durante mucho tiempo) Yo, por el contrario, demostré que todo funciona correctamente si sigues tu consejo y declaras un op.=& privado. El editor producirá un error en este caso de inmediato. Lo haré así a partir de ahora ))
Las peculiaridades se conocen doblemente, pero no de tal manera que si se cambia el orden de la suma (salvo los números relativamente muy diferentes), ¡el resultado es diferente! Por favor, explique a un tonto por qué sucede esto aquí.
Sólo hay que mirar las dos últimas líneas de la fuente.
Error para los desarrolladores.
El script no compila, identifique por qué)). Utilice el archivo adjunto.
El mismo archivo: