Fraction &operator+= (const Fraction &obj){
if (denom == obj.denom){
num += obj.num;
}
else{
lcm = l_c_m(num, denom);
num * (lcm/denom) += obj.num * (lcm/obj.denom);
}
return *this; //returns current object
}
//calculating highest common denominator
int g_c_d(int n, int d){
return d == 0? n : g_c_d(d, n % d);
}
int l_c_m(int a, int b){
int temp = g_c_d(a, b);
return temp ? (a/(temp * b)) : 0;
}
int main(){
cout << frac1 << " + " << frac2 << " = ";
cout << (frac1 += frac2) << endl;
}
Я пытаюсь добавить дробные части, используя этот код. Если перегруженный оператор добавления не работает, когда знаменатели разные. Но код действительно работает, когда знаменатели одинаковы.Как сделать работу оператора сложения?
«не работает» не является полезным описание. –
'num * (lcm/denom) + = obj.num * (lcm/obj.denom);'? – Jarod42