Estoy a punto de hacer Koenig & Moo's Accelerated C++ y en los capítulos 13 & 14 ellos presentan la idea y la implementación de algunas clases de Handle (simples, compartidas, de referencia contadas).¿Es el mango lo mismo que un puntero inteligente?
Las clases encpasulate un puntero prima y el resumen de la asignación/desasignación de objetos dinámicos de distancia del código de cliente para evitar todos los peligros de punteros primas, así que permite al usuario eliminar la referencia de que tengan acceso a la punta de oponerse. Básicamente es una forma "más segura" de interactuar con recursos de memoria en bruto.
¿Las clases presentadas en estos capítulos son esencialmente implementaciones de punteros inteligentes? Los punteros inteligentes todavía son bastante nuevos para mí, pero por lo que entiendo, estas clases de Manipulación realizan la misma función.
- ¿Hay una distinción entre los dos o es solo otro nombre para la misma cosa?
- Suponiendo que son equivalentes en la función, en la práctica, ¿alguna vez se escribiría una clase como esta desde cero en lugar de usar una solución de puntero inteligente ya hecha?
EDITAR
Debo añadir que las clases que se desarrollan en estos capítulos son clases de plantilla por lo que no está obligado a un recurso específico, como en que no están diseñando una clase específica FileHandle por ejemplo.
El código en el primer fragmento de código here, 7.1, es más o menos lo que tienen en los capítulos a los que me refiero.
Gracias! Aprecio particularmente las últimas dos preguntas y respuestas. Estoy en esa etapa en la que siento que ya no soy un novato, pero me falta ese tipo de nivel superior, elección de diseño/filosofía que viene con la experiencia. Saludos. – MTLPhil