<code class="cpp"><code class="cpp">Witam. Mam problem z programem dodającym ułamki. Kompiluje się ale przypisuje jakies smieci danym składowym obiektu klasy ułamek. Po wpisaniu cyfr do w1 i w2 przykładowo 1,3,5,7 , potem po wyswietleniu ich okazuje sie, ze jest tam liczba przykładowo 198586322. Nie wiem co robić. Prosze o pomoc. Oto kod:
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cmath>
using namespace std;
class ulamek
{
public:
int licznik;
int mianownik;
ulamek(int a=1, int b=1)
{
}
int nominator(ulamek fraction);
int denominator(ulamek fraction);
ulamek dodaj(ulamek fraction1, ulamek fraction2);
};
ulamek ulamek::dodaj(ulamek fraction1, ulamek fraction2)
{
ulamek suma(1, 1);
suma.mianownik=fraction1.mianownik*fraction2.mianownik;
suma.licznik=(suma.mianownik/fraction1.mianownik)*fraction1.licznik+(suma.mianownik/fraction2.mianownik)*fraction2.licznik;
return suma;
}
int ulamek::nominator(ulamek fraction)
{
cout<<fraction.licznik<<endl;
}
int ulamek::denominator(ulamek fraction)
{
cout<<fraction.mianownik<<endl;
}
ostream & operator<<(ostream & ekran, ulamek w)
{
ekran<<w.licznik<<"/"<<w.mianownik;
return ekran;
}
istream & operator>>(istream & klawiatura, ulamek z)
{
cout<<"Licznik:"<<endl;
klawiatura>>z.licznik;
```cpp
```
cout<"Mianownik:"<endl; klawiatura="klawiatura">>z.mianownik;
return klawiatura;
}
int main()
{
ulamek w1;
ulamek w2;
cout<<"Podaj ulamek w1:"<<endl;
cin>>w1;
cout<<"Podaj ulamek w2:"<<endl;
cin>>w2;
cout<<"Pokaz licznik w1:"<<w1.licznik<<" "<<"Pokaz mianownik w1:"<<w1.mianownik<<endl;
cout<<"Pokaz licznik w2:"<<w2.licznik<<" "<<"Pokaz mianownik w2:"<<w2.mianownik<<endl;
cout<<"Suma:"<<endl;
cout<<w1.dodaj(w1,w2)<<endl;
}