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. Si eso es realmente lo que se pretende, esos errores pueden eliminarse con un simple (¡y explícito!) molde.

C++ también añade la referencia de Algol y Pascal, que es como un puntero constante que el compilador dereferencia automáticamente. 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 recibe como argumento una referencia a un objeto existente del mismo tipo, y se utiliza para crear un nuevo objeto a partir de otro 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 siempre usted mismo 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.