Ciao a tutti,
sto facendo pratica con uml
partendo da un esercizio parzialmente fatto ho dovuto aggiungere le seguenti funzioni

fraction
---------------------------
- m_Numer
- m_Denom
----------------------------
+ set( numertator : int , denominator : int )
+ toString() : Qstring
+ toDouble() : double
+ add( other : const fraction & ) : fraction
+ subtract ( other : const fraction & ) : fraction
+ multiply ( other : const fraction & ) : fraction
+ divide ( other : const fraction & ) : fraction
---------------------------------------------------
Potreste dirmi se ho fatto giusto l'esercizio?
grazie

codice:
// fraction.cpp
#include "fraction.h"
QTextStream cout(stdout);

// inizializza oggetto
Fraction::Fraction(int number, int demon)
    : m_Numer(number), m_Denom(demon)
{
}

// Setta valori
void Fraction::set (int number, int demon){
    m_Numer = number;
    m_Denom = demon;
}

// converti in stringa
QString Fraction::toString () const{
    return QString ("%1 / %2 ").arg (m_Numer).arg (m_Denom);
}
// converti in double
double Fraction::toDouble () const{
    return 1.0 * m_Numer / m_Denom;
}

// somma i due oggetti
void Fraction::add (const Fraction &other){
    m_Numer += other.m_Numer;
    m_Denom += other.m_Denom;
}

// moltiplica i due oggetti
void Fraction::multiply( const Fraction &other){
    m_Numer *= other.m_Numer;
    m_Denom *= other.m_Denom;
}

// divide i due oggetti
void Fraction::divide (const Fraction &other){
    if ( m_Numer > other.m_Numer and m_Denom > other.m_Denom ){
        m_Numer /= other.m_Numer;
        m_Denom /= other.m_Denom;
    }else{
        cout << "\nNumeri non divisibili\n";
    }
}

// sottrae i due oggetti
void Fraction::subtrack ( const Fraction &other){
    m_Numer -= other.m_Numer;
    m_Denom -= other.m_Numer;
}

// visualizza il valore degli oggetti
void Fraction::diplay (){
    cout << "\nm_Numer " << m_Numer;
    cout << "\nm_Denom " << m_Denom;
}
codice:
#include "fraction.h"
// main cpp
int main() {

    Fraction val1(1,2);
    Fraction val2(3,4);


    val1.add (val2); // somma i due oggetti
    val1.diplay (); // mostra valori

    val1.set (1,2); // setta i valori

    val1.subtrack(val2); // sottrae valori
    val1.diplay (); // mostra valori

    val1.set (1,2); // setta i valori
    val1.multiply (val2); // moltiplica i valori
    val1.diplay (); // mostra valori

    val1.set (1,2); // setta i valori
    val1.divide (val2); // divide i valori
    val1.diplay (); // mostra valori
    return 0;
}
codice:
#ifndef FRACTION_H
// fraction.h
#define FRACTION_H
#include <QString>
#include <QTextStream>

class Fraction {
public:
    Fraction(int number, int demon ); // inizializza oggetto
    void set(int number, int demon);     // Setta valori
    QString toString() const; // converti in stringa
    double toDouble() const;     // converti in double
    void add ( const Fraction &other); // somma i due oggetti
    void multiply( const Fraction &other); // moltiplica i due oggetti
    void subtrack( const Fraction &other); // sottrae i due oggetti
    void divide( const Fraction &other); // divede i due oggetti
    void diplay(); // mostra valori
private:
    int m_Numer, m_Denom;
};

#endif // FRACTION_H