Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO Pensar en C++ (Volumen 1) - Grupo ARCO

arco.esi.uclm.es
from arco.esi.uclm.es More from this publisher
13.01.2015 Views

✐ ✐ ✐ “Volumen1” — 2012/1/12 — 13:52 — page 274 — #312 ✐ ✐ ✐ ✐ ✐

✐ ✐ ✐ “Volumen1” — 2012/1/12 — 13:52 — page 275 — #313 ✐ 10: Control de nombres La creación de nombres es una actividad fundamental en la programación, y cuando un proyecto empieza a crecer, el número de nombres puede llegar a ser inmanejable con facilidad. C++ permite gran control sobre la creación y visibilidad de nombres, el lugar donde se almacenan y el enlazado de nombres. La palabra clave static estaba sobrecargada en C incluso antes de que la mayoría de la gente supiera que significaba el término «sobrecargar». C++ ha añadido además otro significado. El concepto subyacente bajo todos los usos de static parece ser «algo que mantiene su posición» (como la electricidad estática), sea manteniendo un ubicación física en la memoria o su visibilidad en un fichero. En este capítulo aprenderá cómo static controla el almacenamiento y la visibilidad, así como una forma mejorada para controlar los nombres mediante el uso de la palabra clave de C++ namespace. También descubrirá como utilizar funciones que fueron escritas y compiladas en C. 10.1. Los elementos estáticos de C Tanto en C como en C++ la palabra clave static tiene dos significados básicos que, desafortunadamente, a menudo se confunden: Almacenado una sola vez en una dirección de memoria fija. Es decir, el objeto se crea en una área de datos estática especial en lugar de en la pila cada vez que se llama a una función. Éste es el concepto de almacenamiento estático. Local a una unidad de traducción particular (y también local para el ámbito de una clase en C++, tal como se verá después). Aquí, static controla la visibilidad de un nombre, de forma que dicho nombre no puede ser visto fuera del la unidad de traducción o la clase. Esto también corresponde al concepto de enlazado, que determina qué nombres verá el enlazador. En esta sección se van a analizar los significados anteriores de static tal y como se heredaron de C. 10.1.1. Variables estáticas dentro de funciones Cuando se crea una variable local dentro de una función, el compilador reserva espacio para esa variable cada vez que se llama a la función moviendo hacia abajo el puntero de pila tanto como sea preciso. Si existe un inicializador para la variable, la inicialización se realiza cada vez que se pasa por ese punto de la secuencia. 275 ✐ ✐ ✐ ✐

✐<br />

✐<br />

✐<br />

“Volum<strong>en</strong>1” — 2012/1/12 — 13:52 — page 274 — #312<br />

✐<br />

✐<br />

✐<br />

✐<br />

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!