Błąd w funkcji z klasą..

0
class Wymierna{
public:
        Wymierna(int licznik, int mianownik)
        {Licznik=licznik; Mianownik=mianownik;};
        const Wymierna operator*(const Wymierna& x) {return *this;};
        int Licznik, Mianownik; 
        void Out(){ cout<<Licznik<<"/"<<Mianownik,,endl;
};

int main()
{
      Wymierna jednaOsma(1,8);
          Wymierna jednaDruga(1,2);
          Wymierna wynik = jednaOsma*jednaDruga;
          cout<<wynik.Out();
          wynik = wynik*jednaDruga;
          cout<<wynik.Out();
          wynik = 2*jednaDruga;
          cout<<wynik.Out();
          wynik = jednaDruga*2;
          cout<<wynik.Out();
          return 0;
}
0

Od czego zacząć... może od tego że wszystko źle?
implementacja operatora * błędna
implementacja Out() niepotrzebna
użycie Out() błędne

operator * powinien wykonać mnożenie liczb wymiernych
metoda out nie ma sensu, zgodnie ze sztuką zaimplementuj operator << http://www.cplusplus.com/reference/iostream/ostream/operator%3C%3C/

0

To powinno wyglądać tak:

#include <iostream>

class Wymierna
{
public:
    Wymierna(int Licznik = 0, int Mianownik = 1)
        : mLicznik(Licznik), mMianownik(Mianownik) {}

    Wymierna operator*(const Wymierna& arg) const
    {
        Wymierna temp;
        temp.mLicznik = mLicznik * arg.mLicznik;
        temp.mMianownik = mMianownik * arg.mMianownik;
        return temp;
    }

    Wymierna operator*(const int arg) const
    {
        Wymierna temp;
        temp.mLicznik = mLicznik * arg;
        temp.mMianownik = mMianownik;
        return temp;
    }

    int mLicznik, mMianownik; 

    void Out()
    {
        std::cout << mLicznik << "/" << mMianownik << std::endl;
    }
};

Wymierna operator*(int liczba, const Wymierna& ulamek)
{
    return ulamek * liczba;
}

int main()
{
    Wymierna jednaOsma(1,8);
    Wymierna jednaDruga(1,2);
    Wymierna wynik = jednaOsma*jednaDruga;
    wynik.Out();
    wynik = wynik*jednaDruga;
    wynik.Out();
    wynik = 2*jednaDruga;
    wynik.Out();
    wynik = jednaDruga*2;
    wynik.Out();
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1