Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO Pensar en C++ (Volumen 1) - Grupo ARCO
✐ ✐ ✐ “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 ✐ ✐ ✐ ✐
- Page 261 and 262: ✐ ✐ ✐ “Volumen1” — 2012
- Page 263 and 264: ✐ ✐ ✐ “Volumen1” — 2012
- Page 265 and 266: ✐ ✐ ✐ “Volumen1” — 2012
- Page 267 and 268: ✐ ✐ ✐ “Volumen1” — 2012
- Page 269 and 270: ✐ ✐ ✐ “Volumen1” — 2012
- Page 271 and 272: ✐ ✐ ✐ “Volumen1” — 2012
- Page 273 and 274: ✐ ✐ ✐ “Volumen1” — 2012
- Page 275 and 276: ✐ ✐ ✐ “Volumen1” — 2012
- Page 277 and 278: ✐ ✐ ✐ “Volumen1” — 2012
- Page 279 and 280: ✐ ✐ ✐ “Volumen1” — 2012
- Page 281 and 282: ✐ ✐ ✐ “Volumen1” — 2012
- Page 283 and 284: ✐ ✐ ✐ “Volumen1” — 2012
- Page 285 and 286: ✐ ✐ ✐ “Volumen1” — 2012
- Page 287 and 288: ✐ ✐ ✐ “Volumen1” — 2012
- Page 289 and 290: ✐ ✐ ✐ “Volumen1” — 2012
- Page 291 and 292: ✐ ✐ ✐ “Volumen1” — 2012
- Page 293 and 294: ✐ ✐ ✐ “Volumen1” — 2012
- Page 295 and 296: ✐ ✐ ✐ “Volumen1” — 2012
- Page 297 and 298: ✐ ✐ ✐ “Volumen1” — 2012
- Page 299 and 300: ✐ ✐ ✐ “Volumen1” — 2012
- Page 301 and 302: ✐ ✐ ✐ “Volumen1” — 2012
- Page 303 and 304: ✐ ✐ ✐ “Volumen1” — 2012
- Page 305 and 306: ✐ ✐ ✐ “Volumen1” — 2012
- Page 307 and 308: ✐ ✐ ✐ “Volumen1” — 2012
- Page 309 and 310: ✐ ✐ ✐ “Volumen1” — 2012
- Page 311: ✐ ✐ ✐ “Volumen1” — 2012
- Page 315 and 316: ✐ ✐ ✐ “Volumen1” — 2012
- Page 317 and 318: ✐ ✐ ✐ “Volumen1” — 2012
- Page 319 and 320: ✐ ✐ ✐ “Volumen1” — 2012
- Page 321 and 322: ✐ ✐ ✐ “Volumen1” — 2012
- Page 323 and 324: ✐ ✐ ✐ “Volumen1” — 2012
- Page 325 and 326: ✐ ✐ ✐ “Volumen1” — 2012
- Page 327 and 328: ✐ ✐ ✐ “Volumen1” — 2012
- Page 329 and 330: ✐ ✐ ✐ “Volumen1” — 2012
- Page 331 and 332: ✐ ✐ ✐ “Volumen1” — 2012
- Page 333 and 334: ✐ ✐ ✐ “Volumen1” — 2012
- Page 335 and 336: ✐ ✐ ✐ “Volumen1” — 2012
- Page 337 and 338: ✐ ✐ ✐ “Volumen1” — 2012
- Page 339 and 340: ✐ ✐ ✐ “Volumen1” — 2012
- Page 341 and 342: ✐ ✐ ✐ “Volumen1” — 2012
- Page 343 and 344: ✐ ✐ ✐ “Volumen1” — 2012
- Page 345 and 346: ✐ ✐ ✐ “Volumen1” — 2012
- Page 347 and 348: ✐ ✐ ✐ “Volumen1” — 2012
- Page 349 and 350: ✐ ✐ ✐ “Volumen1” — 2012
- Page 351 and 352: ✐ ✐ ✐ “Volumen1” — 2012
- Page 353 and 354: ✐ ✐ ✐ “Volumen1” — 2012
- Page 355 and 356: ✐ ✐ ✐ “Volumen1” — 2012
- Page 357 and 358: ✐ ✐ ✐ “Volumen1” — 2012
- Page 359 and 360: ✐ ✐ ✐ “Volumen1” — 2012
- Page 361 and 362: ✐ ✐ ✐ “Volumen1” — 2012
✐<br />
✐<br />
✐<br />
“Volum<strong>en</strong>1” — 2012/1/12 — 13:52 — page 274 — #312<br />
✐<br />
✐<br />
✐<br />
✐<br />
✐