Przeciazanie operatorow
Ostatnio zmodyfikowano 2015-09-16 14:20
kogut52 Temat założony przez niniejszego użytkownika |
Przeciazanie operatorow » 2015-09-16 13:18:50 Witam walcze dosyc dlugo z problemem przeciazenia operatora >> jezeli ktos widzi gdzie popelnilem blad prosilbym o wstazanie pod jakas mala podpowiedz. bland kompilatora to: ||=== Build: Debug in 4.2 (compiler: GNU GCC Compiler) ===| /home/gigaset/Desktop/cwiczenia-wszytkie/cwiczenia/dzial 4/4.2/4.2/src/n_int.cpp|40|error: ‘std::istream& n_int::operator>>(std::istream&, const n_int&)’ must take exactly one argument| ||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===| #ifndef N_INT_H #define N_INT_H #include<fstream> #include<iostream> using namespace std;
class n_int { public: n_int(); n_int( int zmienna ); n_int operator +( const n_int & obiekt ); n_int operator -( const n_int & obiekt ); n_int operator *( const n_int & obiekt ); n_int operator /( const n_int & obiekt ); friend istream & operator >>( istream & obiekt, const n_int & obiekt2 ); virtual ~n_int(); protected: private: int liczba; bool okt; };
#endif
#include "n_int.h" #include<iostream> #include<fstream> using namespace std;
n_int::n_int() { okt = false; } n_int::n_int( int zmienna ) { zmienna = liczba; okt = true; }
n_int n_int::operator +( const n_int & obiekt ) { return n_int( obiekt.liczba + obiekt.liczba ); } n_int n_int::operator -( const n_int & obiekt ) { return n_int( obiekt.liczba - obiekt.liczba ); }
n_int n_int::operator *( const n_int & obiekt ) { return n_int( obiekt.liczba * obiekt.liczba ); }
n_int n_int::operator /( const n_int & obiekt ) { return n_int( obiekt.liczba / obiekt.liczba ); }
istream & n_int::operator >>( istream & obiekt, const n_int & obiekt2 ) { obiekt >> obiekt2.liczba; if( obiekt2.liczba != 0 ) { return obiekt2.okt = true; } }
n_int::~n_int() { }
|
|
Monika90 |
» 2015-09-16 13:29:48 istream & n_int::operator >>( istream & obiekt, const n_int & obiekt2 ) { obiekt >> obiekt2.liczba; if( obiekt2.liczba != 0 ) { return obiekt2.okt = true; } }
Ten operator nie jest składową klasy więc nie używaj n_int:: w jego definicji. Poza tym, próbujesz wczytywać do stałej. Brakuje też instrukcji return. |
|
kogut52 Temat założony przez niniejszego użytkownika |
» 2015-09-16 13:44:32 wiesz moze w jaki sposob mozna teraz zmienic warosc okt na true? |
|
kogut52 Temat założony przez niniejszego użytkownika |
» 2015-09-16 14:20:38 Dzieki Monika problem rozwiazany:) |
|
« 1 » |