Título: Duda con el codigo
Publicado por: matver 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.¿? #include <iostream> using namespace std; class operating{ public: void leenum(); int suma(); int resta(); int multiplicacion(); float division(); private: int num1, num2; int rsum; int rrest; int producto; float div; }; void operating:: leenum() { cout<<"Ingrese primer numero "; cin>>num1; cout<<"ingrese segundo numero"; cin>>num2; } int operating::suma() { int suma; suma=num1+num2; cout<<"la suma es:"<<suma<<endl; } int operating::resta() { int resta; resta=num1-num2; cout<<"la resta es:"<<resta<<endl; } int operating::multiplicacion() { int producto; producto=num1*num2; cout<< "el producto es:"<<producto<<endl; } float operating::division() { float div; div= num1/num2; cout<<"la division es:"<<div<<endl; } int main (void){ operating op_obj; op_obj.leenum(); op_obj.suma(); op_obj.resta(); op_obj.multiplicacion(); op_obj.division(); }
Título: Re: Duda con el codigo
Publicado por: MAFUS 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.
Título: Re: Duda con el codigo
Publicado por: matver en 23 Febrero 2018, 15:02 pm
Aqui reescribí el código anterior. ME gustaria saber si esta sistanxis es mas correcta. #include <iostream> using namespace std; class operating{ public: void leenum(); int suma(); int resta(); int multiplicacion(); float division(); private: int num1, num2; int rsum; int rrest; int producto; float div; }; void operating:: leenum() { cout<<"Ingrese primer numero "; cin>>num1; cout<<"ingrese segundo numero"; cin>>num2; } int operating::suma() { int suma; suma=num1+num2; return suma; } int operating::resta() { int resta; resta=num1-num2; return resta; } int operating::multiplicacion() { int producto; producto=num1*num2; return producto; } float operating::division() { float div; div= num1/num2; return div; } int main (void){ operating op_obj; op_obj.leenum(); cout<<"Resultado de la suna:"<<op_obj.suma()<<"\n"; cout << "Resultado de la Resta: " << op_obj.resta() << "\n"; cout<<"REsultado de la multiplicación:"<<op_obj.multiplicacion()<<"\n"; cout << "Resultado de la Div: " << op_obj.division()<<"\n"; }
Título: Re: Duda con el codigo
Publicado por: MAFUS en 23 Febrero 2018, 23:12 pm
Aún puedes simplificar mucho más: Para todas las operaciones, en vez de hacer int operating::suma() { int suma; suma=num1+num2; return suma; }
puedes hacer int operating::suma() { return num1+num2; }
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.
|