Saltar al contenido

¿Mover valor de la pila local al montón? (C++)

Luego de consultar con especialistas en el tema, programadores de diversas ramas y profesores hemos dado con la respuesta al problema y la compartimos en esta publicación.

Solución:

Un objeto se identifica por su dirección. Si lo quiere en otra dirección, debe construir una nueva; no puedes mover objetos. (Incluso con C++ 11, la nueva semántica de “mover” en realidad no mueve un objeto; proporciona una forma optimizada de mover su valor, si sabe que no necesitará el valor desde donde lo está moviendo .)

En primer lugar, debe preferir la pila al montón en la mayoría de los casos.

En segundo lugar, cuando asigna objetos en el montón, debe envolver el puntero sin procesar en algún objeto administrado que esté en la pila. Si no es por nada más, hágalo por seguridad excepcional.

En tercer lugar, los objetos Qt suelen hacer exactamente eso, es decir, no hay ninguna ventaja en escribir new QImage o new QMap etc.

Sin embargo, la forma correcta de mover un objeto que no es de montón al montón es decir

new ObjectType (old_instance)

Si hace esto con un objeto temporal, como

new ObjectType (create_object ())

entonces probablemente eliminará la copia adicional (enlace roto para mí, en caché)

Valoraciones y comentarios

Agradecemos que quieras añadir valor a nuestro contenido informacional asistiendo con tu experiencia en las interpretaciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *