//Rac.h #include #ifndef RAC_H #define RAC_H namespace Rac_szamok{ class Rac{ private: int sz,n; void egyszerusit(); //LNKO-val elosztjuk sz-t, n-t public: Rac(int a=0, int b=1):sz(a),n(b) {if(n==0) ; // kivételt dobhat egyszerusit(); } int getsz()const{return sz;} int getn ()const{return n;} void print()const{printf("%d/%d",sz,n);} int azon(const Rac &m)const{return sz==m.sz&&n==m.n;} Rac reciprok()const{return Rac(n,sz);} }; //class Rac ossz(const Rac &a, const Rac &b); } //namespace #endif // RAC_H //Rac.cpp //#include "Rac.h" namespace Rac_szamok{ void Rac::egyszerusit(){ if(n<0){sz=-sz;n=-n;} int t=n; // ez > 0 while(sz%t||n%t)--t; sz/=t;n/=t; } Rac ossz(const Rac &a, const Rac &b) { return Rac(a.getsz()*b.getn()+a.getn()*b.getsz(), a.getn()*b.getn()); } } //namespace //main.cpp //#include "Rac.h" int main() { Rac_szamok::Rac a(4,6),b,c; b=a.reciprok(); // a-ból adódik a névtér c=Rac_szamok::ossz(a,b); c=ossz(a,b); // paraméterekből adódik a névtér return 0; }