Programacion C++
5 Programaci´n orientada a objetos o
Contenido
5. Programaci´n orientada a objetos o 5.1. Introducci´n a C++ . . . . . . . . o 5.2. Diferencias entre C y C++ . . . . 5.3. Clases . . . . . . . . . . . . . . . 5.4. Definici´n de clases . . . . . . . . o 5.5. M´todos . . . . . .. . . . . . . . e 5.6. Constructores y Destructores . . 5.7. Sobrecarga . . . . . . . . . . . . 5.8. Entrada y salida en C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 1 5 5 6 8 10 11
5.
Programaci´n orientada a objetos o
5.1.
Introducci´n a C++ o
El lenguaje C++ fue desarrollado por Bjarne Stroustrup1 de AT&T Bell Laboratories durante los 80. El autor expandi´enormemente el lenguaje C para dar soporte a principios de dise˜o m´s o n a modernos. La diferencia m´s importante entre C y C++ est´ en el soporte para clases, pero son a a fundamentales tambi´n: e 1. 2. Sobrecarga de operadores, que hace posible dar significados a˜adidos a los operadores tradin cionales. Plantillas (templates), que permiten escribir pre-c´digo muy reutilizable sin concretar a´n ou elementos variables.
3. Gesti´n de excepciones, uniformando dando soporte a la detecci´n y respuesta a los errores o o de ejecuci´n. o Sin embargo uno de los objetivos que se propuso el autor fue el de mantener a´n compatibilidad con u el lenguaje germinal C en lo posible. As´ todas las posibilidades del est´ndard C est´n igualmente ı a a presentes en C++. Esto, sin embargo no significa quetodos los programas escritos en C compilen en C++; existen restricciones en C++ respecto a C sobre todo en aras de una mayor seguridad.
5.2.
Diferencias entre C y C++
Adem´s de las grandes novedades relativas a la programaci´n orientada a objetos (clases, a o sobrecarga, derivaci´n, funciones virtuales, plantillas y gesti´n de excepciones), C++ a˜ade a C o o n peque˜as diferencias queconviene conocer. n
1 http://www.research.att.com/~bs/homepage.html
5.2
Diferencias entre C y C++
2
Comentarios C++ tiene comentarios de ´mbito limitado a una s´la l´ a o ınea, frente a C que no acaba el comentario al terminar la l´ ınea. Como ya habremos visto, los comentarios de C++ empiezan con // y terminan con el final de la l´ ınea. Esto no quiere decir, por otra parte, que no sepuedan utilizar tambi´n la t´cnica de comentarios de C. e e Etiquetas frente a nombres de tipo Los identificadores de estructuras, uniones y enumerados bastan para definir en C++ el propio tipo sin necesidad de crear un tipo con typedef. As´ en vez ı de typedef struct {int numerador, denominador;} Fracc; basta (en C++) escribir: struct Fracc {int numerador, denominador;}; pudi´ndose desde entoncesdefinir estructuras de tipo Fracc;. e Funciones sin argumentos ciones sin argumentos: No hay necesidad de usar la palabra void cuando se definen fun-
int leeInt(void); // en C int leeInt(); // es suficiente en C++ Argumentos con valor por defecto C++ permite que un argumento tome un valor por defecto cuando no se especifique un valor real en la llamada. Por ejemplo:
void wrLn(int n = 1) { // tiene unpar´metro que toma por defecto el valor 1 a while (n-- > 0) putchar(’\n’); }
puede ser llamado con o sin par´metros a
wrLn(3); wrLn(); // escribir´a tres saltos de l´nea ı ı // escribir´a uno ı
Si se define la funci´n int a(int a=1, int b=2, int c), ¿qu´ significa a(4,5)? Podr´ significar o e ıa varias cosas con lo que los argumentos con valores por defecto siempre deben estar juntos al...
Regístrate para leer el documento completo.