
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
¿Has encontrado un agujero de seguridad? )
¿No sería mejor utilizar el polimorfismo?
Aproximadamente:
El caso es que las clases herederas CChartObjectRectLabel, CChartObjectButton y CChartObjectEdit, tienen sus propios métodos únicos a los que hay que acceder. Y la clase base CChartObject de la librería estándar no tiene los mismos virtuales.
En mi ejemplo anterior...
acceder a métodos de clases herederas?
...Resulta así:
Sí. Es poco ortodoxo hacer cast directamente de esa manera. En pluses existe dynamic_cast específicamente para este propósito, aquí no se puede hacer un cast completamente correcto y es una fuente potencial de errores implícitos y graves. Y por seriedad no es mucho mejor que los punteros y referencias inseguras.
Sí, antes de hacer una pregunta aquí en el foro, encontré en la red que C++ tiene el operador dynamic_cast (un mecanismo de identificación dinámica de datos).
Ahora estoy mirando el enlace de arriba:
¿Es una condición obligatoria? ¿Y si no hay métodos virtuales en la clase base, entonces dynamic_cast no funcionará?
P.D. >>> Aquí estoy leyendo más sobre dynamic_cast (MSDN).
Mierda, ¿y hablas de seguridad del lenguaje después de eso?
Probablemente piensas que puedes hacer cast libremente a cualquier cosa como en C/C++.
No es así y no hay nada malo con la seguridad.
Probablemente pienses que puedes hacer cast libremente a cualquier cosa como en C/C++.
No es así y no hay nada malo con la seguridad.
Me dio este error por accidente, que parece confirmar tus palabras. )
No lo es y no hay nada malo con la seguridad.
No, no se puede comprobar correctamente dynamic_cast en tiempo de compilación.
El comentario anterior muestra el resultado de la comprobación de casting en rantime.
Es muy rígido, funciona en el mecanismo RTTI, porque sabemos exactamente quién es quién en caso de fantasmas.
El comentario anterior muestra el resultado de la comprobación del casting en rantime.