Beruflich Dokumente
Kultur Dokumente
Con la POO tenemos que aprender a pensar las cosas de una manera distinta, para
escribir nuestros programas en términos de objetos, propiedades, métodos y otras cosas
que veremos rápidamente para aclarar conceptos y dar una pequeña base que permita
soltarnos un poco con este tipo de programación.
Pensar en términos de objetos es muy parecido a cómo lo haríamos en la vida real. Por
ejemplo vamos a pensar en un coche para tratar de modelizarlo en un esquema de POO.
Diríamos que el coche es el elemento principal que tiene una serie de características,
como podrían ser el color, el modelo o la marca. Además tiene una serie de
funcionalidades asociadas, como pueden ser ponerse en marcha, parar o aparcar.
Pues en un esquema POO el coche sería el objeto, las propiedades serían las
características como el color o el modelo y los métodos serían las funcionalidades
asociadas como ponerse en marcha o parar.(2)
Para declarar una clase, todo lo que se necesita es escribir una definición de
estructura y sustituir la palabra reservada struct por class. Por ejemplo, una clase
empleado con campos como el nombre, el departamento, la posición, el una
función que nos imprima la información de este quedaría así:
class Empleado {
char* m_nombre;
char* m_departamento;
char* m_posicion;
long m_salario;
void Imprimir( Empleado infoEmpleado);
}
Cuando usted declara una clase en C++, no se reserva memoria para la clase
hasta que usted crea un objeto de la clase. Crear un objeto de una clase se llama
instanciar un objeto. Un objeto creado de una clase de denomina instancia de una
clase. Por ejemplo, yo puedo tener una instancia de empleado con el valor en
m_nombre=Jose, m_departamento=Sistemas, m_posicion=programador y
m_salario=3000000 por ejemplo.
EJEMPLO DE UNA OBJETO UTILIZANDO LENGUAJE C
Los datos de una clase se pueden guardar en una estructura. De hecho, en C++
un struct no es otra cosa que una clase con todos los miembros públicos. Como C no permite
métodos, usamos funciones globales. El equivalente de C++
1
class MiClase
2
{
3 public:
4 int miDato;
5 void hazAlgo(void)
6 {
miDato = 5;
7 }
8 };
9
en C sería
1
struct MiClase
2 {
3 int miDato;
4 }
5
6 void hazAlgo(MiClase *const miInstancia)
7 {
miInstancia->miDato = 5;
8 }
9