domingo, 1 de enero de 2012

Metodo usado por Metodo en C++

El siguiente desarrollo hace referencia a un ejemplo de como usar un metodo por otro metodo de la misma clase (usar un procedimiento por un procedimiento de la misma clase), utilizando lenguaje de programación c++. Como referencia se tiene la programación orientada a objetos en C++.

En cada clase creada se asignan procedimientos que actuan como funciones de la clase, el problema se presenta cuando los procedimientos(metodos) de una clase generan codigo repetitivo, o cuando algun procedimiento de la clase debe elegir entre dos procedimientos diferentes. Para eliminar código repetitivo se utilizan las funciones, que son equivalentes a procedimientos; la solución implica que un procedimiento de la clase utilize un procedimiento(o procedimientos dentro de la misma clase). La solución se lleva a cabo de la siguiente forma:

Las funciones o procedimientos utilizados por procedimientos de la clase equivale a procedimientos de tipo privado. El siguiente ejemplo muestra como declarar y utilizar procedimientos de tipo privado por procedimientos publicos:

//Archivo Edwin.h
//Clase con procedimiento publico para calcular el area y perimetro de un rectangulo
//el procedimiento publico es area, que calcula area y perimetro; el area la calcula
//dentro del procedimiento publico y para calcular el perimitro hace uso de un
//procedimiento privado de la clase

//Desde aca comienza la clase

#include <stdio.h>
class Edwin
{
public:
void area (int l, int a);
private:
int are, per;
void perimetro (int l, int a);
// Esto es lo importante. Declarar la funcion como          //privada
};
void Edwin::perimetro (int l, int a)
// Se construye la funcion como un metodo de
            // la clase

{
per=2*l+2*a;
}
void Edwin::area (int l, int a)
{perimetro(l, a);
//Se invoca la funcion como se hace normalmente

are=l*a;
printf ("el perimetro es : %d\n", per);
printf ("el area es: %d\n", are);
}
//Aca finaliza la clase
//Archivo CEdwin.cpp
//Programa utilizado para probar la clase Edwin.h
 //Aca comienza el programa principal (.cpp) 
#include <stdio.h>
 #include "Edwin.h"
 int main ()
 {
 int la, an, s;
 Edwin Reyes;
 printf("largo: \n");
 scanf("%d",&la);
 printf("ancho: \n");
 scanf("%d",&an);
 Reyes.area(la, an);
 scanf("%d",&s);
//se hace para no salir hasta presionar una tecla
 return 0;
 }
 
//Aca finaliza el programa principal (.cpp)

Referencias:

http://jlmarina.net/metodos2/