Publicado el 23 de Febrero del 2019
827 visualizaciones desde el 23 de Febrero del 2019
531,5 KB
167 paginas
UNIVERSIDAD DE M ÁLAGA
Dpto. Lenguajes y CC. Computación
E.T.S.I. Informática
Ingeniería Informática
Programación Elemental en C++
Manual de Referencia Abreviado
Revision : 1,20
2
Dpto. Lenguajes y Ciencias de la Computación
Universidad de Málaga
Índice general
Prólogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1. Un programa C++
2. Tipos simples
2.1. Declaración vs. definición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2. Tipos simples predefinidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3. Tipos simples enumerados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4. Constantes y variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5. Operadores
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.6. Conversiones de tipos
3. Estructuras de control
3.1. Sentencia, secuencia y bloque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2. Declaraciones globales y locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3. Sentencias de asignación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4. Sentencias de Selección . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5. Sentencias de Iteración. Bucles
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4. Subprogramas. Funciones y procedimientos
4.1. Funciones y procedimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2. Definición de subprogramas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3. Parámetros por valor y por referencia . . . . . . . . . . . . . . . . . . . . . . . . .
4.4. Subprogramas “en línea” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5. Declaración de subprogramas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5. Entrada / Salida básica
5.1. Salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2. Entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6. Tipos compuestos
6.1. Registros o estructuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2. Agregados o “Arrays” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3. Agregados multidimensionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4. Cadenas de caracteres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.5. Parámetros de tipos compuestos
. . . . . . . . . . . . . . . . . . . . .
6.6. Parámetros de agregados de tamaño variable
6.7.
Inicialización de variables de tipo compuesto
. . . . . . . . . . . . . . . . . . . . .
6.8. Operaciones sobre variables de tipo compuesto . . . . . . . . . . . . . . . . . . . .
6.9. Uniones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.10. Campos de bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7. Biblioteca “string” de C++
3
5
7
9
9
9
10
11
12
13
15
15
15
16
17
18
21
21
22
22
24
24
27
27
27
31
31
31
32
33
34
34
35
36
36
37
39
4
ÍNDICE GENERAL
8. Memoria dinámica. Punteros
8.1. Declaración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2. Desreferenciación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.3. Memoria Dinámica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.4. Estructuras autoreferenciadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.5. Memoria dinámica de agregados
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.6. Paso de parámetros de variables de tipo puntero . . . . . . . . . . . . . . . . . . .
8.7. Operaciones sobre variables de tipo puntero . . . . . . . . . . . . . . . . . . . . . .
8.8. Operador de indirección . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.9. Punteros a subprogramas
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9. Entrada / Salida. Ampliación, control y ficheros
9.1. El “buffer” de entrada y el “buffer” de salida . . . . . . . . . . . . . . . . . . . . .
9.2. Los flujos estándares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.3. Control de flujos. Estado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4. Entrada/Salida formateada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.5. Operaciones de salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.6. Operaciones de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.7. Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.8. Ficheros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.9. Ficheros de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.10. Ficheros de salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.11. Ejemplo de ficheros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.12. Ficheros de entrada/salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.13. Flujo de entrada desde una cadena . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.14. Flujo de salida a una cadena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.15. Jerarquía de clases de flujo estándar
. . . . . . . . . . . . . . . . . . . . . . . . . .
10.Módulos
10.1. Definición e implementación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2. Espacios de nombre
11.Manejo de errores. Excepciones
12.Sobrecarga de subprogramas y operadores
12.1. Sobrecarga de subprogramas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.2. Sobrecarga de operadores
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.Tipos abstractos de datos
13.1. Métodos definidos automáticamente por el compilador . . . . . . . . . . . . . . . .
13.2. Requisitos de las clases respecto a las excepciones . . . . . . . . . . . . . . . . . . .
13.3. Punteros a miembros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.Programación Genérica. Plantillas
15.Programación orientada a objetos
15.1. Métodos estáticos y virtuales
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
43
43
44
44
45
45
46
46
47
49
49
49
50
51
53
53
55
55
55
56
56
57
57
57
57
59
59
60
63
67
67
68
71
82
82
83
85
89
97
16.Biblioteca Estándar de C++. STL
99
16.1. Características comunes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
16.1.1. Ficheros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
16.1.2. Contenedores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
16.1.3. Tipos definidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
16.1.4. Iteradores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
16.1.5. Acceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
16.1.6. Operaciones de Pila y Cola . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Dpto. Lenguajes y Ciencias de la Computación
Universidad de Málaga
ÍNDICE GENERAL
5
16.1.7. Operaciones de Lista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
16.1.8. Operaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
16.1.9. Constructores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
16.1.10.Asignación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
16.1.11.Operaciones Asociativas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
16.1.12.Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
16.1.13.Operaciones sobre Iteradores
. . . . . . . . . . . . . . . . . . . . . . . . . . 102
16.2. Contenedores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
16.3. vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
16.4. list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
16.5. deque
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
16.6. stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
16.7. queue
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
16.8. priority-queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
16.9. map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
16.10.multimap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
16.11.set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
16.12.multiset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
16.13.bitset
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
16.14.Iteradores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
16.15.directos
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
16.16.inversos
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
16.17.inserters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
16.18.stream iterators . . . . .
Comentarios de: Programación Elemental en C++ (0)
No hay comentarios