11.5. Resumen

Los punteros en C++ son casi idénticos a los punteros en C, lo cual es bueno. De otra manera, gran cantidad de código C no compilaría en C++. Los únicos errores en tiempo de compilación serán aquéllos que realicen asignaciones peligrosas. Esos errores pueden eliminarse con una simple (pero explícito!) molde.

C++ también añade la referencia de Algol y Pascal, que es como un puntero constante que el compilador hace que se acceda directamente al contenido al que apunta. Una referencia contiene una dirección, pero se trata como un objeto. Las referencias son esenciales para una sintaxis clara con la sobrecarga de operadores (el tema del siguiente capítulo), pero también proporcionan mejoras sintácticas para el paso y retorno de objetos en funciones normales.

El constructor de copia coge una referencia a un objeto existente del mismo tipo que el argumento, y lo utiliza para la creación de un nuevo objeto a partir del que existente. El compilador llama automáticamente al constructor de copia cuando pasa o retorna un objeto por valor. Aunque el compilador crea un constructor de copia automáticamente, si cree que su clase necesita uno, debería definirlo para asegurar un comportamiento apropiado. Si no desea que el objeto se pase o retorne por valor, debería crear un constructor de copia privado.

Los punteros a miembro tienen la misma capacidad que los punteros normales: puede elegir una región de memoria particular (atributo o método) en tiempo de ejecución. Los punteros a miembro funcionan con los miembros de una clase en vez de variables o funciones globales. Ofrecen la suficiente flexibilidad para cambiar el comportamiento en tiempo de ejecución.