Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Program z ułamkami - operatory inkrementacji w klasie

Ostatnio zmodyfikowano 2015-12-03 19:40
Autor Wiadomość
Yardi1993
Temat założony przez niniejszego użytkownika
[C++] Program z ułamkami - operatory inkrementacji w klasie
» 2015-12-03 18:21:02
Witam.
Załączam treść zadania (do momentu w którym mam problem) i swój dotychczasowy kod.
Napisz klasę ułamka zwykłego, zawierającą dwa pola prywatne (licznik i
mianownik), oraz trzy konstruktory (bez-, jedno- i dwuargumentowy), zgodnie z laboratorium 01.
Dodaj do niego operatory dodawania, odejmowania, mnożenia, dzielenia oraz postinkrementacji,
preinkrementacji, postdekrementacji i predekrementacji (a++, ++a, a--, --a)
.

C/C++
#include<iostream>
#include <math.h>

class ulamek
{
private:
    int x, y;
public:
    ulamek()
    {
        x = 0, y = 0;
    }
    ulamek( int x_3, int y_3 )
    {
        x = x_3; y = y_3;
    }
    double getX() { return x; }
    double getY() { return y; }
    ulamek dodawanie( ulamek a )
    {
        ulamek c;
        int wsp = a.y * y;
        int u1 = a.x * y;
        int u2 = x * a.y;
        c.x = u1 + u2;
        c.y = wsp;
        return c;
    }
    ulamek odejmowanie( ulamek a )
    {
        ulamek d;
        int wsp = a.y * y;
        int u1 = a.x * y;
        int u2 = x * a.y;
        d.x = u1 - u2;
        d.y = wsp;
        return d;
    }
    ulamek mnozenie( ulamek a )
    {
        ulamek e;
        e.x = a.x * x;
        e.y = a.y * y;
        return e;
    }
    ulamek dzielenie( ulamek a )
    {
        ulamek f;
        f.x = a.y * x;
        f.y = a.x * y;
        return f;
    }
};
int main( int, char ** )
{
    ulamek a( 1, 2 );
    ulamek b( 1, 2 );
}
Wracając do tematu, rozumiem różnicę między a++ i ++a. Nie wiem już dokładnie jak zastosować ++a, czy ma podnosić licznik z mianownikiem o 1, czy ma być do całego ułamka dodawana całość, czy może tylko do licznika.
Natomiast na chwile obecną całkowitą abstrakcją jest dla mnie rozpisanie operatora a++. Prosiłbym o pomoc w tej dziedzinie.
P-141364
carlosmay
» 2015-12-03 19:17:14
C/C++
Klasa Klasa::operator ++( int )
{
    Klasa temp = * this;
    // inkrementacja wartosci 'this'
    return temp;
}

Nie wiem już dokładnie jak zastosować a++, czy ma podnosić licznik z mianownikiem o 1, czy ma być do całego ułamka dodawana całość, czy może tylko do licznika.
 Jeśli operator++(int) ma działać zgodnie ze standardem, to do wartości postinkrementowanej dodajesz 1.
P-141368
michal11
» 2015-12-03 19:40:36
Może podam przykład:

1/2  + 1 = 1 1/2  = 3/2
2/3  + 1 = 1 2/3  = 5/3
7/11 + 1 = 1 7/11 = 18/11


Mam nadzieję, że wywnioskujesz z tego co ma robić operator++ i analogicznie operator--.
P-141370
« 1 »
  Strona 1 z 1