• Lunes 29 de Abril de 2024, 01:17

Autor Tema:  Tengo Una Duda  (Leído 1534 veces)

carlitox

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Tengo Una Duda
« en: Miércoles 20 de Diciembre de 2006, 03:37 »
0
necesito saber si alguien me puede dar un ejemplo sobre como pasar este codigo a orientado a objeto. (solo un ejemplo) si pueden mas mejor :whistling:

Código: Text
  1. #include <stdio.h>
  2. #include <conio.h>
  3. //#include <stdlib.h>
  4. //#include <string.h>
  5. //#include <iostream.h>
  6.  
  7. //Clase Operaciones Aritmeticas
  8. class OperArit
  9. {
  10.  private:
  11.   //Atributos de la clase
  12.   float num1, num2;
  13.  
  14.  public:
  15.   //Constructor
  16.   OperArit(float a, float B);
  17.  
  18.   //Destructor
  19.   ~OperArit();
  20.  
  21.   //Funciones miembro
  22.   float LeerValor(void);
  23.   float Sumar(float a, float B);
  24.   float Restar(float a, float B);
  25.   float Multiplicar(float a, float B);
  26.   float Dividir(float a, float B);
  27. };
  28.  
  29. OperArit::OperArit(float a, float B)
  30. {
  31.  num1=a;
  32.  num2=b;
  33. }
  34.  
  35. OperArit::~OperArit()
  36. {
  37.  //delete num1;
  38.  //delete num2;
  39. }
  40.  
  41. float OperArit::LeerValor(void)
  42. {
  43.  float valor;
  44.  scanf("%f",&valor);
  45.  return valor;
  46. }
  47.  
  48. float OperArit::Sumar(float a, float B)
  49. {
  50.  return a+b;
  51. }
  52.  
  53. float OperArit::Restar(float a, float B)
  54. {
  55.  return a-b;
  56. }
  57.  
  58. float OperArit::Multiplicar(float a, float B)
  59. {
  60.  return a*b;
  61. }
  62.  
  63. float OperArit::Dividir(float a, float B)
  64. {
  65.  return a/b;
  66. }
  67.  
  68.  
  69. void main(void)
  70. {
  71.  clrscr();
  72.  
  73.  float valor1,valor2;
  74.  
  75.  //Creando la instancia (objeto ope1) de la clase OperArit
  76.  //mediante el constructor de la clase
  77.  
  78.  OperArit ope1(0,0);
  79.  
  80.  OperArit ope2(0,0);
  81.  
  82.  printf("\n IMPLEMENTACION DE UNA CLASE EN C++ \n\n\n");
  83.  
  84.  printf("Ingrese el 1er valor para ope1:");
  85.  valor1 = ope1.LeerValor();
  86.  printf("Ingrese el 2do valor para ope1:");
  87.  valor2 = ope1.LeerValor();
  88.  
  89.  printf("\n La Suma ope1 es %f",ope1.Sumar(valor1,valor2));
  90.  printf("\n La Resta ope1 es %f",ope1.Restar(valor1,valor2));
  91.  printf("\n La Multiplicacion ope1 es %f",ope1.Multiplicar(valor1,valor2));
  92.  printf("\n La Division ope1 es %f",ope1.Dividir(valor1,valor2));
  93.  getche();
  94. }                                        
  95.  


solo necesito una operacion...gracias de antemano

carlitox

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Tengo Una Duda
« Respuesta #1 en: Jueves 21 de Diciembre de 2006, 03:29 »
0
eeeeeeee tengo una duda...

¿Es muy facil lo que estoy pidiendo? :comp:

o No se la pueden

Solo contesten (No es en mala onda) solo necesito un ejemplo :scream:

SteelX

  • Miembro MUY activo
  • ***
  • Mensajes: 218
    • Ver Perfil
Re: Tengo Una Duda
« Respuesta #2 en: Jueves 21 de Diciembre de 2006, 16:56 »
0
mi duda es que consideras tu. orientado a objetos??
Inside the code

supermancito

  • Miembro activo
  • **
  • Mensajes: 35
    • Ver Perfil
Re: Tengo Una Duda
« Respuesta #3 en: Miércoles 3 de Enero de 2007, 16:55 »
0
:whistling: no recuerdo muy bien asi que si estoy mal porfavor agenmelo saber :smartass:


lo que deverias acer es separar cada "float"  en clases derivadas y usar "voids"  para los calculos
ejm:
     
       
Citar
class restar
       {   }
              public: restar(float  nu1, float nu2)://nombre de la clase base(parametros)//

              ~restar()
                 {}
void calcular();
void mostrar();
};

y a cada void comun que tengas en todo el programa deves de ponerle  el mismo nombre ejm: a todos los mostrar le pones solo mostrar y
en la clase base declaras de esta manera
 
Citar
void mostrar()=0;
luego creas un void pàra declarar al objeto y en el void solo direccionar a que estas llamando.


la verdad crreo que es muy complicado explicar esto en un foro es amplio el tema te recomiendo leas un libbbro de c++ orientada a objetos .

pd:  estoy bien :blink:      si no solo diganme porfa esque no recuerdo mucho el tema :smartass:
C:\Documents and Settings\Administrador\Mis documentos

bob esponja

  • Miembro MUY activo
  • ***
  • Mensajes: 411
    • Ver Perfil
    • http://marianoguerra.blogspot.com
Re: Tengo Una Duda
« Respuesta #4 en: Miércoles 3 de Enero de 2007, 17:19 »
0
primero que todo el codigo quoteado esta mal.
segundo las operaciones no son un buen candidato a convertirse en clases en todo caso lo que se tendrtian que convertir en clases son los numeros y tiene poco sentido ya que es bastante simple hace 2-3, en vez de Entero numero( 2 ); numero.restar( 3 ); pero si eso es lo que queres me parece que lo tenes que encarar por ese lado..

algo asi como una clase numero que te permita tomar el numero mostrarlo y hacer operaciones con el (esto con metodos o sobrecargando los operadores), podrias usar templates o hacerlo con herencia, es tu decision.

esto que estas haciendo es para ejercitar un poco?
el mejor ejemplo para practicar OO es con las clases Figura (Circulo, cuadrado triangulo etc.)

consulta si no entendiste algo (o todo :P)