Czy istnieje sposób inicjalizacji zmiennej w funkcji i zapisania jej wartości dla następnego wywołania funkcji?C++: zapisz wartość zmiennej dla następnego wywołania funkcji
Robię aplikację w qt i mam jedną funkcję połączoną z sygnałem. Chcę, aby zmienna w tej funkcji zmieniała się, gdy druga osiągnie swój cel. Oto ciało tej funkcji:
void objekt::advance(int phase)
{
if(!phase) return;
QPointF location = this->pos();
if (int(location.x())==200 || int(location.x())==-200)
{
smijer=-smijer;
}
setPos(mapToParent(smijer,0));
}
Zdefiniowałem zmienną smijer jako statyczną int. Ale nie wiem, jak zainicjować go tylko raz, kiedy program się uruchomi i jak zachować jego nową wartość po każdym wywołaniu funkcji.
Zmienne statyczne * są * inicjalizowane tylko jeden raz. Jaki jest problem? –
Gdzie ją zainicjować? W pliku nagłówkowym? Z innej klasy? Próbowałem inicjalizacji z innej klasy, ale dostaję ten błąd: objekt.obj: -1: błąd: LNK2001: nierozwiązany symbol zewnętrzny "public: static int objekt :: smijer" (? Smijer @ objekt @@ 2HA) – speedyTeh
prawdopodobnie powinieneś zainicjować statyczny element klasy w klasie. lub przenieś go na inną klasę i podaj wartość tej wartości. – Sergi0