El ejercicio consiste en crear una clase y sus métodos para que este programa logre funcionar:
Código
#include <iostream> #include "Fraccion.hpp" using namespace std; int main() { Fraccion f1(1.0,4.0); Fraccion f2(1.0,2.0); Fraccion f3; Fraccion f4(4); Fraccion suma = f1.Suma(f2); Fraccion resta = f1.Resta(f3); Fraccion producto = f1.Multiplica(f4); Fraccion cociente = f1.Divide(f2); cout << "Primera Fraccion: " << f1.Prt() << endl; cout << "Segunda Fraccion: " << f2.Prt() << endl; cout << "Tercera Fraccion: " << f3.Prt() << endl; cout << "Cuarta Fraccion: " << f4.Prt() << endl; cout << "Suma " << suma.Prt() << endl; cout << "Resta " << resta.Prt() << endl; cout << "Producto " << producto.Prt() << endl; cout << "Cociente " << cociente.Prt() << endl; return 0; }
Vale, hasta ahí bien, esta es la clase que he creado, junto con sus métodos:
Código
class Fraccion { public: Fraccion(float numerador,float denominador); ~Fraccion(); int Suma(Fraccion objeto); int Resta(Fraccion objeto); int Multiplica(Fraccion objeto); int Divide(Fraccion objeto); float Prt() const; private: float fraccion,resultado; }; Fraccion::Fraccion(float numerador = 0.0,float denominador = 1.0) { fraccion = numerador / denominador; resultado = numerador / denominador; } Fraccion::~Fraccion(){} int Fraccion::Suma(Fraccion objeto) { this->resultado = this->fraccion + objeto.fraccion; return 0; } int Fraccion::Resta(Fraccion objeto) { this->resultado = this->fraccion - objeto.fraccion; return 0; } int Fraccion::Multiplica(Fraccion objeto) { this->resultado = this->fraccion * objeto.fraccion; return 0; } int Fraccion::Divide(Fraccion objeto) { this->resultado = this->fraccion / objeto.fraccion; return 0; } float Fraccion::Prt() const { return this->resultado; }
Muy posiblemente el error esté en las variables porque me he hecho un lío con ambas y no obtengo la salida esperada.
Un saludo y gracias de antemano