Funkcja zaprzyjaźniona - nie nadpisuje zmiennych

0

Witam,
próbuję dodać funkcję zaprzyjaźnioną, która mogłaby nadpisać zmienne prywatne z klasy. Niestety nie działa. Kod ogólnie dotyczy gry saper i staram się dodać możliwość wyboru poziomu (wielkość mapy i ilość min) i chciałem to zrobić funkcją zaprzyjaźnioną (program na uczelnie, więc nie mogę inaczej). Czy mógłby ktoś zerknąć w kod i zobaczyć czemu funkcja levelEasy (od linii 302) będąca zaprzyjaźniona dla klasy saper nie nadpisuje zmiennych: xlength, ylength, level (od linii 22)? :/

Kod programu: http://wklej.org/id/1750684/

0

(program na uczelnie, więc nie mogę inaczej)

Wtf? Wyjaśnij to.

0
Endrju napisał(a):

(program na uczelnie, więc nie mogę inaczej)

Wtf? Wyjaśnij to.

Emmm znaczy muszę po prostu użyć funkcji zaprzyjaźnionych. W sumie to gdziekolwiek w tym programie, ale nie mam innego pomysłu na użycie ich. :/

2

A jak domyślnie przekazywane są obiekty do funkcji?
Odpowiedź: przez wartość, czyli są kopiowane.
Czyli po kolei:
przekazujesz sapera do levelEasy, robiona jest jego kopia, na tej kopii jest cos robione, poźniej kopia jest usuwana. W funkcji nie zmieniasz oryginału, modyfikujesz jedynie lokalną zmienną, kopie.
Rozwiązanie:

void levelEasy (saper &s);

1 użytkowników online, w tym zalogowanych: 0, gości: 1