[C++] Program z ułamkami - operatory inkrementacji w klasie
Ostatnio zmodyfikowano 2015-12-03 19:40
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).#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. |
|
carlosmay |
» 2015-12-03 19:17:14 Klasa Klasa::operator ++( int ) { Klasa temp = * 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. |
|
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--. |
|
« 1 » |