You are on page 1of 14

Tutorial de Programacin Orientada a Objetos con C++

1. Definicin de Clase y Objeto ............................................................................................. 3 1.1. 1.2. 2. Clase .......................................................................................................................... 3 Objeto ....................................................................................................................... 3

Definicin de Atributo y Mtodo ...................................................................................... 3 2.1. 2.2. Atributo ..................................................................................................................... 3 Mtodo ..................................................................................................................... 3

3.

Herencia ............................................................................................................................ 4 3.1. 3.2. Herencia Simple ........................................................................................................ 4 Herencia Mltiple ..................................................................................................... 4

4.

Abstraccin ....................................................................................................................... 4 4.1. Caractersticas ........................................................................................................ 5

5. 6. 1. 2. 3. 4. 5. 6.

Polimorfismo ..................................................................................................................... 5 Sobrecarga de Mtodos .................................................................................................... 5 Ejemplo Clase .................................................................................................................... 6 Ejemplo Objeto ................................................................................................................. 8 Ejemplo Herencia Simple .................................................................................................. 8 Ejemplo Herencia Mltiple ............................................................................................... 9 Ejemplo Abstraccin ....................................................................................................... 11 Ejemplo Sobrecarga de Mtodos .................................................................................... 13

Introduccin
Hola a todos, en este pequeo tutorial que tratar de ser lo ms entendible y sencillo posible para entender conceptos sobre la Programacin Orientada a Objetos, revisndolo de forma terica y con implementacin de sencillas aplicaciones. La dinmica que trabajaremos ser conceptualizar los trminos de acuerdo a como se definen tcnicamente, y a los cuales agregar la forma en cmo los entiendo segn mi punto de vista.

Se pueden encontrar muchos tutoriales por toda la Red sobre este tema, pero como les digo en este tratar de que quede lo ms entendible, hablando en un lenguaje muy natural.

Acerca del IDE, o plataforma a usar, pues hay muchas BorlandC++, DevCpp, Netbeans, por nombrar algunos. Para nuestro caso, vamos a usar el IDE Dev-Cpp (http://s3.amazonaws.com/00001-all-ES/devcpp-

4.9.9.2_setup.exe). Y hablando ya pues particularmente me gusta mucho el Netbeans y el Dev-Cpp. Para los que deseen emplear Netbeans, habr que incorporarle el plugin (Herramienta) de C/C++ que proveen.

1. Definicin de Clase y Objeto


En la programacin en C++, (y en la mayora de lenguajes estructurados), es muy comn ver el uso del trmino TAD o TDA (Tipo de Dato Abstracto), pero bueno, pues esta no es la esencia en esta introduccin. Y hago la suposicin de que se haya visto algo sobre esto en su clase de programacin.

1.1. Clase
Definicin Tcnica: Es una representacin real de un TDA. Define atributos y mtodos que implementa la estructura de datos. La Defino: Define el modelo que van a seguir los Objetos que se instancien de ella. Define comportamientos y caractersticas que van a tener los objetos. Ver Ejemplo.

1.2. Objeto
Definicin Tcnica: Un objeto es una instancia de una clase. Puede ser identificado en forma nica por su nombre, el cul es representado por los valores de sus atributos en un momento en particular. Lo Defino: Al ser una instancia de una clase, es el que decide cmo se va a comportar de acuerdo a lo que le haya definido la clase. Ver Ejemplo.

2. Definicin de Atributo y Mtodo


2.1. Atributo
Definicin Tcnica: Caractersticas individuales que diferencian un objeto de otro y determinan su apariencia, estado u otras cualidades. Lo Defino: Aunque la definicin anterior est muy clara, pues solo me restara decir, que son las variables que se crean dentro de la clase, las cuales toman valores distintos para cada objeto.

2.2. Mtodo
Definicin Tcnica: Definen el comportamiento de los objetos de una clase, es un conjunto de instrucciones que realizan una determinada tarea y son similares a las funciones de los lenguajes estructurados. Lo Defino: Adems de dar la posibilidad de comportamiento a los objetos, son muy usados tambin para ir separando cdigo que es muy extenso y en la definicin de la clase se note mayor orden y quede ms entendible. Y con esto ir dando pasos a la modularidad y reusabilidad.

3. Herencia
Definicin Tcnica: Es el mecanismo que permite que una clase A herede propiedades de una clase B. Se Dice que "A hereda de B". Objetos de la clase A tienen as acceso a los atributos y mtodos de la clase B sin necesidad de redefinirlos. La Defino: Es un proceso por el que se crean unas clases a partir de otra(s) que ya existe(n), pensando sobre todo en la reutilizacin de cdigo. Otra cosa que se tiene es que las clases que heredan (subclases, clases hijas) son ms completas y especficas que las superclases o clases padre. Esto se da mucho cuando se nota que en una clase se usan muchas caractersticas y comportamientos de otra(s), entonces se opta por usar Herencia.

3.1. Herencia Simple


Esto es cuando una clase hereda de una y solo una, clase padre. Es el tipo de herencia ms comn y es soportado por todos los lenguajes de Programacin Orientados a Objetos. Ver Ejemplo.

3.2. Herencia Mltiple


Esto es cuando una clase puede heredar de varias superclases. No es muy comn usar este tipo de herencia y adems no todos los Lenguajes de Programacin Orientada a Objetos lo soportan. C++ s lo tiene. Ver Ejemplo.

4. Abstraccin
Definicin Tcnica: Una clase A se llama clase abstracta si es usada solamente como una superclase para otras clases. La Clase A solamente especifica propiedades. No se usa para crear objetos. Las clases derivadas deben definir las propiedades de A. La Defino: El concepto es precisamente lo que se dice en la anterior definicin, pero ya explicndolo un poco mejor, sera algo as: Es la capacidad que tienen las clases para ocultar informacin acerca del comportamiento y propiedades que van a tener las clases que hereden de ella. Ver Ejemplo.

4.1. Caractersticas Las clases abstractas pueden implementar o no mtodos. Cuando no los implementan, estos son abstractos. Las clases abstractas no se pueden instanciar directamente, slo pueden ser heredadas. Las clases que heredan de una clase abstracta, son las que deben implementar los mtodos abstractos que stas posean.

5. Polimorfismo
Definicin Tcnica: Capacidad que tienen los objetos de una clase de responder al mismo mensaje o evento en funcin de los parmetros utilizados durante su invocacin. Un objeto polimrfico es una entidad que puede contener valores de diferentes tipos durante la ejecucin del programa. Dicho de otra forma, el polimorfismo consiste en conseguir que un objeto de una clase se comporte como un objeto de cualquiera de sus subclases. Lo Defino: Enfocado en el ltimo punto de la Definicin Tcnica, a travs del manejo de herencia se puede llegar a poner en prctica este concepto. Ya que es como lo definen: conseguir que un objeto de una clase se comporte como cualquiera de sus subclases

6. Sobrecarga de Mtodos
Definicin Tcnica: Se refiere a la posibilidad de tener dos o ms funciones con el mismo nombre pero funcionalidad diferente. Es decir, dos o ms funciones con el mismo nombre realizan acciones diferentes. El compilador usar una u otra dependiendo de los parmetros usados. La Defino: Me parece que la definicin anterior queda muy clara. Le agregara, que para diferenciar estos mtodos o funciones, se realiza con el cambio en la firma del mtodo (que se refiere al uso de diferentes parmetros). Ver Ejemplo.

EJEMPLOS
1. Ejemplo Clase

Imagen 1 Persona.h

Imagen 2 Persona.cpp Parte 1

Imagen 3 Persona.cpp Parte 2

2. Ejemplo Objeto

Imagen 4 Ppal.cpp

3. Ejemplo Herencia Simple

Imagen 5 Adulto.h

Imagen 6 Infante.h

4. Ejemplo Herencia Mltiple

Imagen 7 PuntoB.cpp

Imagen 8 C1.cpp

Imagen 9 C2.cpp

Imagen 10 D.cpp

5. Ejemplo Abstraccin

Imagen 11 Cuenta.h

Imagen 12 CuentaDeAhorros.cpp

Imagen 13 CuentaCorriente.cpp

6. Ejemplo Sobrecarga de Mtodos

Imagen 14 Cuenta.h

Imagen 15 Cuenta.cpp

Imagen 16 Ppal.cpp

You might also like