Как я могу устранить ошибку
Когда я запускаю код ниже, я получаю ,что "фракция класса" не имеет члена с именем "inc".
Я хочу выполнять все функции как друг.
Пожалуйста, совет
Что я уже пробовал:
#include <iostream> #include <string.h> using namespace std; class fraction { long num; long den; public: fraction (); fraction(long,long); fraction(const fraction &); ~fraction(); long getnum (void)const; long getDen (void)const; void print (void); friend fraction add (const fraction &, const fraction &); friend fraction sub (const fraction &, const fraction &); friend fraction mult(const fraction &, const fraction &); friend fraction div (const fraction &, const fraction &); friend fraction inc (const fraction &); }; fraction::fraction(long l_num,long l_den) { num = l_num ; den = l_den ; } fraction::fraction( ) { num = 0L ; den = 1L ; } fraction::fraction(const fraction& F) { num=F.num; den=F.den; } fraction:: ~fraction ( ) { // cout<<"Destructor"<<endl; } long fraction::getDen (void) const { return den ; } long fraction::getnum (void) const { return num ; } void fraction:: print (void) { if(den==0) den=1L; cout<<num<<"/"<<den <<endl; } fraction add( const fraction &f1, const fraction &f2) { long num = (f1.getnum ( ) * f2.getDen ( )) + ( f1.getDen ( ) * f2.getnum ( ) ); long den = (f1.getDen ( ) * f2.getDen ( )); return fraction(num, den); } fraction sub ( const fraction &f1, const fraction &f2) { long num = (f1.getnum ( ) * f2.getDen ( )) - ( f1.getDen ( ) * f2.getnum ( ) ); long den = (f1.getDen ( ) * f2.getDen ( )); return fraction(num, den); } fraction mult ( const fraction &f1, const fraction &f2) { long num = (f1.getnum ( ) * f2.getnum ( )); long den = (f1.getDen ( ) * f2.getDen ( )); return fraction(num, den); } fraction div( const fraction &f1, const fraction &f2) { long num = (f1.getnum ( ) * f2.getDen ( )); long den = (f1.getDen ( ) * f2.getnum ( )); return fraction(num, den); } fraction inc (const fraction &f1) { return add(f1,fraction(1,1)); } int main() { fraction f1,f2(5L,0L); fraction f3(f2); f1.print(); f2.print(); f3.print(); f3 = add(f3 , fraction (-7,8) ); f1 = add(f2,f3); f1.print (); f1 = sub(f2 , f3); f1.print(); f1 = mult(f2, f3); f1.print(); f1.inc().inc().print(); f1=div(f2 , f3 ); f1.print(); return 0; }
[no name]
фракция:: inc
Richard MacCutchan
Сначала прочтите свой код.