Mam za zadanie napisać kilka funkcji, które nie mogą wykorzystywać pętli, tylko rekurencję. Stąd też poumieszczałem w funkcjach zmienne statyczne, które są wspólne dla wszystkich wywołań rekurencyjnych.
Problem w tym, że zapomniałem że po kilku wywołaniach rekurencyjnych, kiedy to z funkcji już ostatecznie wyjdziemy to za jakiś czas kiedy znowu do niej wejdziemy… zmienne statyczne zostaną zamrożone i będą miały taką wartość, jaką miały przy ostatnim wywołaniu tej funkcji.
I teraz nie wiem jak naprawić ten głupi błąd. Załóżmy, że mamy taką funkcję:
Właśnie nie mogę tak zrobić, bo wartościami domyślnymi musiałyby być składniki klasy - a wtedy pojawiają się błędy typu:
Nie mogę nawet przesyłać tych składników za każdym wywołaniem funkcji bo są prywatnymi składnikami klas - musiałbym każdą klasę zaprzyjaźniać z miejscami, w których wywołuję te funkcje…
Nie rozumiem, mógłbyś mi wytłumaczyć w czym to jest lepsze od zrobienia funkcji rekurencyjnych i powrzucania ich do pierwotnej funkcji rekurencyjnej :?:
Poza faktem, że każdą klasę w programie będę musiał zaprzyjaźniać z klasą z operatorem() to nie wiem jak to rozwiąże kwestię zmiennych statycznych…