/* rational numbers in C++ */ #include class rational { private: int num; int dem; int gcd(int a, int b) {if (a==0) return b; else return gcd(b%a,a);} public: rational(int n, int d) // constructor { int g; num = n; if (d!=0) dem = d; else dem = 1; g = gcd(num,dem); num = num/g; dem = dem/g; } ~rational() {} // destructor void invert() { if (num==0) return; int temp; temp = num; num = dem; dem = temp; } int equals(rational* other) { return num*other->dem == dem*other->num; } void multx(rational* b) { num = num*b->num; dem = dem*b->dem; } rational* mult(rational* b) { return new rational(num*b->num, dem*b->dem); } void print() { cout << num << "/" << dem; } }; // class rational int main() { rational *a, *b; a = new rational(1,2); b = new rational(2,4); cout << a->equals(b) << endl; a->multx(b); b = a->mult(b); a->print(); cout << endl; b->print(); cout << endl; }