どなたか助言をお願いしますj・・・・
#include<iostream>
using namespace std;
class Frac{
public:
int x;
int y;
int gcd(int m,int n){
double p = m;
if(m > n)
p = n;
if(n == 0)
return m;
if(n > 0)
return gcd(n,m%n);
}
public:
Frac(int m,int n);
void print(){
Frac temp = *this ;
int taibunsu = 0;
if(temp.y == 1){
cout<<temp.x<<endl;
}
else if(temp.x < temp.y){
cout<<"("<<temp.x<<"/"<<temp.y<<")"<<endl;
}
else{
while(temp.x > temp.y){
taibunsu++;
temp.x -= temp.y;
}
cout<<taibunsu<<" + "<<"("<<temp.x<<"/"<<temp.y<<")"<<endl;
}
}
Frac operator * (Frac b){
int shi = x * b.x;
int bo = y * b.y;
return Frac(shi, bo);
}
Frac operator / (Frac b){
int shi = x * b.y;
int bo = y * b.x;
return Frac(shi, bo);
}
Frac operator+(Frac b){
int shi = x * b.y + b.x * y;
int bo = y * b.y;
return Frac(shi, bo);
}
Frac operator-(Frac b){
int shi = x * b.y - b.x * y;
int bo = y * b.y;
return Frac(shi, bo);
}
};
class Frac2:public Frac{
public:
Frac2 operator * (int b){
int shi = x * b.x;
int bo = y * b.y;
return Frac2(shi, bo);
}
Frac2 operator / (){
/////////ここに記述したい//////////
}
};
Frac::Frac(int m,int n){
if(m == 0){
x = 0;
y = 1;
}
else if(m == 1){
x = 1;
y = n;
}
else if(m%n == 0){
x = m/n;
y = 1;
}
else{
int koubai = gcd(m,n);
x = m/koubai;
y = n/koubai;
}
}
int main()
{
Frac2 a1 = Frac2(30, 12);
Frac2 a2 = Frac2(10, 8);
a1.print();
a2.print();
Frac2 b = a1 * 3;
b.print();
b = a2 / 3;
b.print();
return 0;
}