Ver Mensaje Individual
  #6 (permalink)  
Antiguo 08/05/2015, 17:06
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 3 meses
Puntos: 204
Respuesta: QMenu, abrir multiples ventanas

Cita:
Iniciado por jc_moj Ver Mensaje
Por cierto, una duda que siempre tengo, el cast, si mal no recuerdo, tenía que hacer un cast para poder usar los métodos de mi clase MainWindow y he aquí mi duda, nunca sé cual es el más apropiado, a ver si puedes "iluminarme" un poco sobre el tema.
dynamic_cast: este cast se usa cuando hay polimorfismo. Realiza una conversión segura de una clase base a otra hija. Si la conversión no se puede realizar devolverá un puntero nulo. Si tienes una clase base A y dos clases hijas, B y C; en un puntero de tipo A puedes almacenar objetos de tipo A, B, y C. La única forma de saber si en el puntero A hay almacenado un objeto de tipo B o C es usando dynamic_cast.

static_cast: este cast se usa entre tipos compatibles, como una conversión de int a flota o viceversa. También se puede usar con polimorfismo. Si tu sabes, en base al ejemplo anterior, que lo que hay almacenado en un puntero de tipo A es un objeto de tipo B, puedes usar static_cast, que es mas ligero que dynamic_cast. Eso sí, como realmente lo que haya en A no sea un objeto de tipo C vete preparando el saco de errores porque lo vas a llenar.

reinterpret_cast: este cast es el más parecido al cast de c. Es como decirle al compilador... " se que esto que voy a hacer puede parecer una burrada, pero no te preocupes que se lo que me hago". Este cast es especialmente útil si, por ejemplo, tienes que convertir un puntero de void* en el tipo de datos que corresponda.

const_cast: este cast te permite eliminar el modificador const a un puntero. Este cast hay que usarlo con cuidado, ya que si el objeto apuntado ha sido creado como const, el resultado de la operación puede ser indeterminado. Una cosa es crear un objeto como const y otra es pasar un objeto no const como argumento constante... No se si me explico.

Si algo no te ha quedado claro te lo explico con mas detalle en otro momento, que con el móvil escribir código es un suplicio.

Un saludo