Ti želiš da imaš funkciju koja ima double kao ulaz a Razlomak kao izlaz. I da se od ulaznog broja uzimaju samo cifre do šeste decimale.
Ako je to tačno onda:
1. Funkcija mora da vraća Razlomak, a ne double
2. Promenljiva b (koja je povratna vrednost funkcije) mora da bude Razlomak, a ne int
3. Ta promenljiva b (koja je Razlomak) valjda ima dve članice, brojnik i nazivnik. brojnik treba da dobije vrednost floor(dec*1000000), a nazivnik treba da dobije vrednost 1000000.
I to je to, nema neke velike mudrosti. Funkcija mora da bude statička, i poziva se sa raz12=mojRazlomak::doubleUrazlomak(4.64789). Evo rešenja:
Code:
class mojRazlomak : public Razlomak
{
public:
static Razlomak doubleUrazlomak(double dec);
...
};
Razlomak mojRazlomak::doubleUrazlomak(double dec)
{
Razlomak b(floor(dec*1000000), 1000000); // pretpostavljam da postoji ovakav konstruktor
// ako ne postoji kostruktor kao gore onda treba nekako ovako
b.brojnik = floor(dec*1000000);
b.nazivnik = 1000000;
return b;
}