Actualizado el 29 de Mayo del 2021 (Publicado el 14 de Enero del 2017)
5.042 visualizaciones desde el 14 de Enero del 2017
837,2 KB
122 paginas
Creado hace 20a (10/01/2005)
Tutorial de C++
o el diario de Peter Class
Peter Class
Pello Xabier Altadill Izura
Tutorial de C++: o el diario de Peter Class
por Peter Class y Pello Xabier Altadill Izura
Este documento se cede al dominio publico.
Historial de revisiones
Revisión 1.0 19-11-2004 Revisado por: px
Documento inicial
Revisión 1.1 23-11-2004 Revisado por: px
Revision inicial, correcciones menores e imagenes
Tabla de contenidos
1. Intro .....................................................................................................................................1
2. Hola nena............................................................................................................................3
3. Funciones............................................................................................................................5
4. Tipos de datos....................................................................................................................9
5. Operadores.......................................................................................................................13
6. Parametros, ambito, sobrecarga ...................................................................................19
7. Clases.................................................................................................................................25
8. Iteraciones ........................................................................................................................31
9. Punteros ............................................................................................................................37
10. Referencias.....................................................................................................................43
11. Funciones avanzadas....................................................................................................51
12. Arrays ..............................................................................................................................59
13. Herencia..........................................................................................................................63
14. Herencia multiple .........................................................................................................69
15. Miembros estaticos.......................................................................................................77
16. Clases y sus amigas ......................................................................................................81
17. Entrada/Salida ...............................................................................................................89
18. Preprocesador ................................................................................................................95
19. Principios de POO ........................................................................................................99
20. Templates......................................................................................................................101
21. Excepciones ..................................................................................................................107
22. Librerias estandar .......................................................................................................113
23. Notas, autoria, licencia, referencias.........................................................................117
iii
iv
Capítulo 1. Intro
Figura: el caballero de Peter Class.
Este es el diario de Peter Class sobre sus dias aprendizaje de una disciplina de ca-
balleros: c++ sobre linux. No pretende ser una vision exaustiva del lenguaje c++,
simplemente muestra su uso a traves de los ejemplos. Un lenguaje orientado a ob-
jetos como c++ precisa de cierta explicacion previa antes de meterse en desarrollos
serios, y para aprenderlo que mejor que programar ejemplos.
Peter era un campesino que se empeño en convertirse en paladin de c++, para des-
facer entuertos y para llevar la virtud a los lugares mas sacrilegos de la programacion.
No fue facil, y sus experiencias se cuentan aqui. Este diario es por tanto un conjunto
de ejemplos de codigo glosados por el ahora caballero Peter Class.
Atencion: este tutorial no contiene ni una sola linea de codigo util. Simplemente es un
conjunto de ejemplos ultrasimplones que tratan de mostrar la sintaxis cd c++. Puede
ser util como referencia rapida, sobre todo si da pereza mirar en los tipicos libros de
c++ de 900 paginas. Si, esos mismos libros que en la pagina 200 todavia estan con
las estructuras de control; pero no dire nombres <-- estoy pensando en Deitel, pero
openjade ocultara esto jeje --> Doh!
1
Capítulo 1. Intro
2
Capítulo 2. Hola nena
Bueno, vamos a ver si en 21 dias se va creando codigo c++ y se puede aprender este
lenguaje de forma ordenada. Se esta probando este codigo con gcc. Hoy es el dia uno
e incluyo el código mas simple posible.
/**
* HolaNena.cpp
* Codigo iniciatico que simplemente muestra el mensaje estandar HolaNena de nano
*
* Pello Xabier Altadill Izura
*
* Compilado: g++ HolaNena.cpp -o HolaNena
*/
using namespace std;
#include <iostream>
int main () {
// Sacamos por salida estandar un mensaje
cout << "HolaNena!\n";
return 0;
}
3
Capítulo 2. Hola nena
Figura: Entrenando. Hay que ir poco a poco
Aqui otro codigo de ejemplo.
/**
* Test.cpp
* Programa del ejemplo simple, para saber que es lo que hace ejecutalo
*
*
* Compilado: g++ Test.cpp -o Test
*/
using namespace std;
#include <iostream>
int main() {
int x = 5;
int y = 7;
cout << "\n";
cout << x + y << " " << x * y;
cout << "\n";
return 0;
}
4
Capítulo 3. Funciones
Vamos a ver como se declaran las funciones en c++. No tiene ningun misterio, es
igual que en c. Siempre hay que especificar el tipo de retorno.
/**
* Funcion.cpp
* Programa con llamada a una funcion
*
* Pello Xabier Altadill Izura
*
* Compilado: g++ Funcion.cpp -o Funcion
*/
using namespace std;
#include <iostream>
// Funcion: llamada
int llamada (int x, int y) {
cout << "Estamos en la funcion!!" << endl;
return (x+y);
}
int main() {
// Estos comentarios son propios de C++
cout << "Vamos a llamar a la funcion.." << endl;
// Llamamos a la funcion
// Llamamos a una funcion y asignamos
int z = llamada(5,7);
cout << "Resultado:" << z << endl;
// Llamada desde el output
cout << "Resultado:" << llamada(6,7) << endl;
cout << "Programa terminado \n" << endl;
return 0;
}
5
Capítulo 3. Funciones
Figura: Quiza llevemos encima un tarro de esencia de Fibonaci
Atencion, en este caso veremos como recoger datos de stdin o entrada estandar.
/**
* Funcion3.cpp
* Programa con llamada a una funcion
* El programa principal recoge datos de la entrada estandar
*
* Pello Xabier Altadill Izura
*
* Compilado: g++ Funcion3.cpp -o Funcion3
*/
using namespace std;
#include <iostream>
// Funcion: llamada
int llamada (int x, int y) {
cout << "Estamos en la funcion!!" << endl;
return (x+y);
}
int main() {
// Estos comentarios son propios de C++
cout << "Vamos a llamar a la funcion.." << endl;
// Llamamos a la funcion
// Llamamos a una funcion y asignamos
int z = 0, x = 0, y = 0;
// Recogemos los parametros
cout << "Dame el primer parametro:";
cin >> x;
cout << "\nOK!\nDame el segundo parametro:";
cin >> y;
cout << "\nOK vamos a calcular.";
6
Capítulo 3. Funciones
// Efectuamos la funcion.
z = llamada(x,y);
// Mostramos el resultado
cout << "Resultado:" << z << endl;
// Llamada desde el output
cout << "Resultado:" << llamada(6,7) << endl;
cout << "Programa terminado \n" << endl;
return 0;
}
Facil no?
7
Capítulo 3. Funciones
8
Capítulo 4. Tipos de datos
Figura: al principio puede hacerse un poco complejo
Los tipos de datos de c++ no varian mucho respecto a c y son bastante evidentes, tal
y como se puede apreciar en este codigo.
/**
* Tipos.cpp
* Programa para sacar el tamaño de cada tipo de datos
* Pello Xabier Altadill Izura
*
* Compilado: g++ Tipos.cpp -o Tipos
*/
using namespace std;
#include <iostream>
int main () {
// Sacamos el tamaño de cada tipo
cout << "El tamaño del int es:\t\t" << sizeof(int) << " bytes.\n";
cout << "El tamaño del short es:\t" << sizeof(short) << " bytes.\n";
cout << "El tamaño del long es:\t" << sizeof(long) << " bytes.\n";
cout << "El tamaño del char es:\t\t" << sizeof(char) << " bytes.\n";
cout << "El tamaño del float es:\t\t" << sizeof(float) << " bytes.\n";
cout << "El tamaño del double es:\t" << sizeof(double) << " bytes.\n";
// Sacamos por salida standar un mensaje
cout << "Termino el programa\n";
return 0;
}
9
Capítulo 4. Tipos de datos
Tambien se pueden definir constantes:
/**
* Constante.cpp
* Programa en el que definimos un valor constante
* Pello Xabier Altadill Izura
*
* Compilado: g++ Constante.cpp -o Constante
*/
using namespace std;
#include <iostream>
#define MEMOLA 25
int main () {
int y = 0;
// Definimos el valor constante
const float PI = 3.1416;
cout << "Ten fe en el caos: " << PI << endl;
// Sacamos por salida standar un mensaje
cout << "\nTermino el programa : " << MEMOLA << endl;
return 0;
}
Tabla 4-1. Tipos basicos de datos
Tipo
void
char
int
float
double
bool
wchar_t
Modificadores
signed char(8 bits),
unsigned char(8 bits)
signed int(16 bits),
unsigned int(16 bits), long
int (32 bits), unsigned long
int(32 bits), signed long
int(32 bits), short int(16
bits), unsigned short
int(16 bits), signed short
int(16 bit)
long double (80 bits)
Descripcion
Vacio
Caracter (8 bits)
Entero simple (16 bits)
Coma flotante (32 bits)
Coma flotante mas grande
(64 bits)
Valor booleano: true o
false
Caracteres anchos, para
determinado juegos de
caracteres
Sin animo de extenderse mucho mas, en c++ tambien disponemos de struct, union y
10
Capítulo 4. Tipos de datos
enum. Veamos unos ejemplos:
struct ficha {
char nombre[50];
int edad;
char dni[9];
} ficha1, ficha2;
strcpy(ficha1.nombre,"Marujita Diaz");
ficha1.edad =
Segmentatio
Comentarios de: Tutorial de C++ o el diario de Peter Class (0)
No hay comentarios