c++, funkcje zaprzyjaźnione/ przeciążenie

c++, funkcje zaprzyjaźnione/ przeciążenie
SA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 61
0

witam, dla tak zdefiniowanej funkcji zaprzyjaźnionej wyskakuje mi błąd dla miejsca prywatnego w klasie:

Kopiuj
 friend istream & operator>>(istream & in, modulo & k);
Kopiuj
istream & operator<<(istream & in, modulo & k){
    in >> k.rest;
    return in;
}

widzi ktoś może źródło błędu ?

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
0

A jaki to błąd wyskakuje? Szklana kula w niedziele nie pracuje.

SA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 61
0

xdd że pole 'rest' is private, a funkcja zaprzyjaźniona w kalsei więc nwm skąd problem

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
3

operator<< i operator>> to różne funkcje.

SA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 61
0
  1. error: 'int modulo::rest' is private|
  2. error: within this context|
    lepiej ? ^^
twonek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2500
0

Pokaż deklarację klasy.

WY
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 134
2
Kopiuj
istream & operator<<(istream & in, modulo & k){
    in >> k.rest;
    return in;
}

W deklaracji masz operator <<, a w ciele masz in >> k.rest.. Powinno być:

Kopiuj
istream& operator >> (istream& in, modulo& k){
    return in >> k.rest;
}
  • Rejestracja: dni
  • Ostatnio: dni
1

istream a nie powinno byc iostream :)

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
0

Powinno być istream dla wejścia i ostream dla wyjścia.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.