elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda con el codigo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con el codigo  (Leído 1,620 veces)
matver

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Duda con el codigo
« en: 11 Febrero 2018, 16:52 pm »

Chicos estoy aprendiendo POO este código funciona pero me pregunto por la sintaxis; si es la correcta.¿?

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class operating{
  5.  
  6. public:
  7.    void leenum();
  8.    int suma();
  9.    int resta();
  10.    int multiplicacion();
  11.    float division();
  12. private:
  13.      int num1, num2;
  14.      int rsum;
  15.      int rrest;
  16.      int producto;
  17.      float div;
  18.  
  19.   };
  20.  
  21. void operating:: leenum()
  22. {
  23.   cout<<"Ingrese primer numero ";
  24.   cin>>num1;
  25.   cout<<"ingrese segundo numero";
  26.   cin>>num2;
  27.  }
  28. int operating::suma()
  29. {
  30.   int suma;
  31.   suma=num1+num2;
  32.   cout<<"la suma es:"<<suma<<endl;
  33.  }
  34. int operating::resta()
  35. {
  36.   int resta;
  37.   resta=num1-num2;
  38.   cout<<"la resta es:"<<resta<<endl;
  39. }
  40. int operating::multiplicacion()
  41. {
  42.    int producto;
  43.    producto=num1*num2;
  44.    cout<< "el producto es:"<<producto<<endl;
  45. }
  46. float operating::division()
  47. {
  48.    float div;
  49.    div= num1/num2;
  50.    cout<<"la division es:"<<div<<endl;
  51. }
  52. int main (void){
  53.  
  54. operating op_obj;
  55. op_obj.leenum();
  56. op_obj.suma();
  57. op_obj.resta();
  58. op_obj.multiplicacion();
  59. op_obj.division();
  60.  
  61. }
  62.  
  63.  
  64.  


En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Duda con el codigo
« Respuesta #1 en: 11 Febrero 2018, 20:50 pm »

En verdad no está bien. La idea de que un método tenga tipo de regreso es que regrese un dato, por ejemplo: int suma() debería devolver el resultado de la suma. Por otra parte, y es cuestión de gustos, el que un método que realice un trabajo escriba por pantalla tampoco me gusta (a no ser por cuestión de depuración). Tratamiento de datos y representación deberían estar separados.


En línea

matver

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Re: Duda con el codigo
« Respuesta #2 en: 23 Febrero 2018, 15:02 pm »

Aqui reescribí el código anterior. ME gustaria saber si esta sistanxis es mas correcta.
Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class operating{
  5.  
  6. public:
  7.    void leenum();
  8.    int suma();
  9.    int resta();
  10.    int multiplicacion();
  11.    float division();
  12. private:
  13.      int num1, num2;
  14.      int rsum;
  15.      int rrest;
  16.      int producto;
  17.      float div;
  18.  
  19.   };
  20.  
  21. void operating:: leenum()
  22. {
  23.   cout<<"Ingrese primer numero ";
  24.   cin>>num1;
  25.   cout<<"ingrese segundo numero";
  26.   cin>>num2;
  27.  }
  28. int operating::suma()
  29. {
  30.   int suma;
  31.   suma=num1+num2;
  32.   return suma;
  33.  }
  34. int operating::resta()
  35. {
  36.   int resta;
  37.   resta=num1-num2;
  38.   return resta;
  39. }
  40. int operating::multiplicacion()
  41. {
  42.    int producto;
  43.    producto=num1*num2;
  44.    return producto;
  45. }
  46. float operating::division()
  47. {
  48.    float div;
  49.    div= num1/num2;
  50.    return div;
  51. }
  52.  
  53. int main (void){
  54.  
  55. operating op_obj;
  56. op_obj.leenum();
  57. cout<<"Resultado de la suna:"<<op_obj.suma()<<"\n";
  58. cout << "Resultado de la Resta: " << op_obj.resta() << "\n";
  59. cout<<"REsultado de la multiplicación:"<<op_obj.multiplicacion()<<"\n";
  60. cout << "Resultado de la Div: " << op_obj.division()<<"\n";
  61. }
  62.  
  63.  
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Duda con el codigo
« Respuesta #3 en: 23 Febrero 2018, 23:12 pm »

Aún puedes simplificar mucho más:
Para todas las operaciones, en vez de hacer
Código
  1. int operating::suma()
  2. {
  3.   int suma;
  4.   suma=num1+num2;
  5.   return suma;
  6. }

puedes hacer
Código
  1. int operating::suma()
  2. {
  3.   return num1+num2;
  4. }

Con lo que en la clase podrías eliminar rsum, rrest, producto y div.

Hasta podrías hacer que a leenum se le pasen como parámetros dos números y los  guarde en num1 y num2 dejando el trabajo de pedir números al llamante y ser operating una clase puramente matemática, sin mensajes por pantalla de ningún tipo.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
duda en el codigo vb
Programación Visual Basic
josemer 0 1,296 Último mensaje 23 Enero 2006, 20:32 pm
por josemer
duda en un codigo vb
Programación Visual Basic
ugruhell 6 2,387 Último mensaje 26 Agosto 2006, 00:20 am
por Ironhorse
Duda con codigo de vb6 y el MSN « 1 2 »
Programación Visual Basic
Anteros 10 3,342 Último mensaje 6 Abril 2007, 01:54 am
por Sancho.Mazorka
Duda codigo PHP
PHP
knox18 1 1,675 Último mensaje 9 Septiembre 2007, 17:24 pm
por P[i]
Duda codigo PHP « 1 2 »
PHP
knox18 14 5,338 Último mensaje 14 Septiembre 2007, 15:15 pm
por Alex_bro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines