Escuela Superior de Ingenieros Industriales
de San Sebastián
UNIVERSIDAD DE NAVARRA
Aprenda C++
como si estuviera en primero
8
9
9
1
l
i
r
b
a
,
n
á
i
t
s
a
b
e
S
n
a
S
Javier García de Jalón • José Ignacio Rodríguez • José María Sarriegui • Alfonso Brazález
http://www.tayuda.com/ayudainf/index.htm
Aprenda C++
como si estuviera en primero
Javier García de Jalón
José Ignacio Rodríguez
José María Sarriegui
Alfonso Brazález
Perteneciente a la colección : “Aprenda …, como si estuviera en primero”
Editada y mantenida por Javier García de Jalón (
[email protected])
Nuevos títulos y actualizaciones en: http://www.tayuda.com/ayudainf/index.htm
ÍNDICE
1
INTRODUCCIÓN........................................................................................................................................1
2 MODIFICACIONES MENORES...............................................................................................................2
2.1 CAMBIO EN LA EXTENSIÓN DEL NOMBRE DE LOS FICHEROS................................................................2
2.2 COMENTARIOS INTRODUCIDOS EN EL PROGRAMA ..............................................................................2
2.3 DECLARACIÓN SIMPLIFICADA DE VARIABLES TIPO ENUMERACIÓN.....................................................3
2.4 DECLARACIÓN SIMPLIFICADA DE VARIABLES CORRESPONDIENTES A ESTRUCTURAS..........................4
2.5 MAYOR FLEXIBILIDAD EN LA DECLARACIÓN DE VARIABLES ..............................................................4
SCOPE O VISIBILIDAD DE VARIABLES..................................................................................................5
2.6
2.7
ESPECIFICADOR CONST PARA VARIABLES ...........................................................................................6
2.8
ESPECIFICADOR CONST PARA PUNTEROS.............................................................................................7
2.9 CONVERSIONES EXPLÍCITAS DE TIPO ..................................................................................................8
2.10 ESPECIFICADOR INLINE PARA FUNCIONES ...........................................................................................8
2.11 SOBRECARGA DE FUNCIONES..............................................................................................................9
2.12 VALORES POR DEFECTO DE PARÁMETROS DE UNA FUNCIÓN...............................................................9
2.13 VARIABLES DE TIPO REFERENCIA ......................................................................................................10
2.14 OPERADORES NEW Y DELETE PARA GESTIÓN DINÁMICA DE MEMORIA...............................................12
2.15 PUNTEROS DE TIPO VOID...................................................................................................................13
2.16 NUEVA FORMA DE REALIZAR LAS OPERACIONES DE ENTRADA Y SALIDA..........................................14
2.17 FUNCIONES CON NÚMERO DE PARÁMETROS VARIABLE.....................................................................15
3 MODIFICACIONES MAYORES ............................................................................................................16
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS (OOP) ............................................16
3.1
3.2 CLASES, OBJETOS Y MÉTODOS.........................................................................................................17
3.3
EJEMPLO DE CLASE EN C++: NÚMEROS COMPLEJOS .........................................................................17
3.4 CLASE SIN SECCIONES PRIVADAS: STRUCT ........................................................................................23
3.5 CLASES CON SECCIONES PRIVADAS. .................................................................................................25
3.6
EXPANSIÓN INLINE ...........................................................................................................................27
3.6.1 Definición ..........................................................................................................................27
3.6.2
Implementación de las funciones inline.............................................................................27
3.7
ENTRADA Y SALIDA DE DATOS .........................................................................................................28
3.7.1 Una breve comparación con la entrada y salida de datos de ANSI C...............................29
3.8 OPERADORES NEW Y DELETE CON CLASES ........................................................................................30
3.9 CONSTRUCTORES Y DESTRUCTORES.................................................................................................31
3.9.1
Inicializadores...................................................................................................................32
3.9.2
Llamadas al constructor....................................................................................................32
3.9.3 Constructor por defecto y constructor con parámetros con valor por defecto..................33
3.9.4 Constructor de oficio.........................................................................................................34
3.9.5 Constructor de copia .........................................................................................................34
3.9.6 Necesidad de escribir un constructor de copia .................................................................35
3.9.7
Los constructores y el operador de asignación (=)...........................................................37
3.9.8 Destructores ......................................................................................................................37
3.10 CLASES Y FUNCIONES FRIEND...........................................................................................................38
3.11 EL PUNTERO THIS..............................................................................................................................40
3.12 SOBRECARGA DE OPERADORES.........................................................................................................40
3.12.1 Clase cadena para manejo de cadenas de caracteres.......................................................41
3.12.2 Definición de funciones y operadores de la clase cadena.................................................45
3.12.3 Ejemplo de utilización de la clase cadena.........................................................................48
3.12.4 Sobrecarga de los operadores (++) y (--).........................................................................50
3.13 OBJETOS MIEMBRO DE OTROS OBJETOS. ...........................................................................................51
3.14 VARIABLES MIEMBRO STATIC............................................................................................................53
3.15 FUNCIONES MIEMBRO STATIC............................................................................................................55
HERENCIA.................................................................................................................................................57
4.1 NECESIDAD DE LA HERENCIA ...........................................................................................................57
4.2 DEFINICIÓN DE HERENCIA ................................................................................................................57
4
ESIISS: Aprenda C++ como si estuviera en Primero
página 2
4.2.1
Variables y funciones miembro protected .........................................................................57
4.3 CONSTRUCTORES DE LAS CLASES DERIVADAS: INICIALIZADOR BASE ...............................................60
4.4 HERENCIA SIMPLE Y HERENCIA MÚLTIPLE........................................................................................60
4.5 CLASES BASE VIRTUALES .................................................................................................................61
4.6 CONVERSIONES ENTRE OBJETOS DE CLASES BASE Y CLASES DERIVADAS .........................................62
POLIMORFISMO .....................................................................................................................................63
5.1
IMPLEMENTACION DE LAS FUNCIONES VIRTUALES ...........................................................................65
5.2
FUNCIONES VIRTUALES PURAS .........................................................................................................66
5.3 CLASES ABSTRACTAS .......................................................................................................................67
5.4 DESTRUCTORES VIRTUALES .............................................................................................................67
ENTRADA/SALIDA EN C++ ...................................................................................................................69
6.1
ENTRADA/SALIDA CON FORMATO.....................................................................................................69
6.2 ACTIVAR Y DESACTIVAR INDICADORES............................................................................................70
6.3
FUNCIONES MIEMBRO WIDTH(), PRECISION() Y FILL()........................................................................71
6.3.1 Manipuladores de entrada/salida......................................................................................71
6.4
SOBRECARGA DE LOS OPERADORES DE ENTRADA/SALIDA (<< Y >>)................................................72
ENTRADA/SALIDA DE FICHEROS .......................................................................................................72
6.5
Funciones miembro de iost
Comentarios de: Aprenda C++ como si estuviera en primero (0)
No hay comentarios