ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Ejercicios C++


Enviado por   •  12 de Noviembre de 2012  •  2.039 Palabras (9 Páginas)  •  442 Visitas

Página 1 de 9

En esta sección no se pretende dar una teoría completa de P.O.O. tan sólo se presentarán los conceptos necesarios para una correcta programación en C++ Builder.

La P.O.O. es un paradigma de programación que se fundamenta en los conceptos de objeto y clase. En primer lugar, definamos que entendemos por objeto y clase:

Objeto: Una entidad autónoma con una funcionalidad concreta y bien definida.

Clase:

Especificación de las características de un conjunto de objetos.

Un objeto es una instancia de una clase.

Los conceptos presentados en esta sección se ilustrarán usando un ejemplo que se irá completando poco a poco a medida que se introduzcan nuevos conceptos. Es más, este mismo ejemplo se emplea en las secciones dedicadas al tratamiento de excepciones y a la programación con hebras. Así, preparemos el camino creando un proyecto:

• Crear un proyecto (File | New | Application)

• Cambiar el nombre del formulario (Name=PpalFrm). Colocar un PaintBox de la página de componentes System que se llame PaintBox, con Align=alTop. Dejar espacio por debajo del PaintBox para colocar un botón.

• Colocar un bevel de ancho 4 y alinearlo en lo alto (Align=alTop). La idea es que delimite la parte inferior del PaintBox.

• Colocar un botón bit que permita terminar la ejecución del programa. El botón estará centrado horizontalmente en la parte inferior del formulario.

• Guardar el código del formulario como Ppal.cpp y el proyecto como Ejemplo.bpr.

• Crear una unidad (File | New | Unit). Guardarla con el nombre ObjGraf.cpp

Cuando se crea una unidad de esta manera se crean, en realidad, dos ficheros, uno con extensión .cpp y otro con extensión .h. Así, disponemos de dos ficheros: ObjGraf.h, que contendrá las declaraciones de las clases con las que vamos a trabajar, y ObjGraf.cpp, que contendrá la definición (implementación de los métodos) de éstas.

En ObjGraf.h:

//--------------------------------------------------

#ifndef ObjGrafH

#define ObjGrafH

// Definición de la clase TObjGraf

class TObjGraf {};

#endif

//--------------------------------------------------

Nótese que el nombre de la clase va precedido por una T, y, aunque no es obligatorio, si es muy recomendable ya que es una convención de C++ Builder que casi todos los nombres de clases vayan precedidos por T.

Muy Importante: Con el ejemplo anterior sólo conseguimos definir la clase, pero no se crea ningún objeto.

5.1. El Paradigma de la POO en C++

Existen cuatro principios básicos que cualquier sistema orientado a objetos debe incorporar, que se esquematizan en la figura 5.1.

Figura 5.1. Pilares de la POO.

5.2. Creación y Destrucción de Objetos

Ya se ha dicho que una clase es únicamente una especificación. Para poder utilizar la funcionalidad contenida en la misma, se debeninstanciar las clases.

1. Creación por Declaración.

Un objeto se puede instanciar de una forma simple, declarando una variable del tipo de la clase.

En Ppal.h:

#include "ObjGraf.h"

En Ppal.cpp:

Pulsando dos veces en OnCreate de la pestaña Events del editor de objetos de PpalFrm:

//--------------------------------------------------

void __fastcall TPpalFrm::FormCreate(TObject *Sender)

{

TObjGraf ObjGraf1();

TObjGraf ObjGraf2;

}

//--------------------------------------------------

Aunque esta forma es posible, y bastante utilizada en la programación de C++ clásica, en C++ Builder se utiliza en muy contadas ocasiones. Esto es así por dos razones, fundamentalmente:

1. La duración de los objetos suele ir más allá de una simple función o bloque. Debido al enfoque de la programación dirigida por eventos, suele ser habitual que un objeto se cree en un gestor de eventos y se destruya en otro.

2. No se puede usar esta modalidad de creación con la VCL.

Por lo tanto, nosotros no la utilizaremos.

2. Creación Dinámica

Es la forma habitual de crear objetos en C++ Builder, y se realiza mediante el operador new .

Cuando usamos new para instanciar un objeto, se usa una variable que referencie o apunte al nuevo objeto creado (de otra manera éste quedaría totalmente inaccesible). En definitiva, se requiere la declaración previa de un puntero a objetos del tipo del que se va a crear.

En Ppal.cpp:

TObjGraf * ObjGraf; // Variable Global.

// ObjGraf es un puntero a objetos de tipo TObjGraf

//--------------------------------------------------

void __fastcall TPpalFrm::FormCreate(TObject *Sender)

{

ObjGraf = new TObjGraf;

}

//--------------------------------------------------

La forma de establecer el estado inicial o destruir las componentes de un objeto se estudiarán en el apartado dedicado aConstructores y Destructores (sección 5.4).

¡Cuidado! Cuando se utiliza esta forma de instanciación de clases es responsabilidad únicamente del programador la correcta destrucción de los mismos.

...

Descargar como (para miembros actualizados)  txt (13.5 Kb)  
Leer 8 páginas más »
Disponible sólo en Clubensayos.com