C'è un modo per inizializzare una variabile in una funzione e salvare il suo valore per la prossima chiamata di funzione?C++: salva il valore variabile per il prossimo richiamo della funzione
Sto facendo applicazione in qt e ho una funzione connessa con un segnale. Voglio che una variabile in quella funzione cambi dopo che l'altra raggiunge il suo obiettivo. Ecco il corpo di quella funzione:
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));
}
Ho definito la variabile smijer come statica int. Ma non so come inizializzarlo solo una volta, all'avvio del programma, e come mantenere il suo nuovo valore dopo ogni chiamata della funzione.
Le variabili statiche * sono * inizializzate una sola volta. Qual è il problema? –
Dove inizializzarlo? Nel file di intestazione? Da un'altra classe? Ho provato l'inizializzazione da un'altra classe ma ottengo questo errore: objekt.obj: -1: errore: LNK2001: simbolo esterno non risolto "public: static int objekt :: smijer" (? Smijer @ objekt @@ 2HA) – speedyTeh
probabilmente dovresti inizializzare membro statico della classe all'interno della classe. o spostarlo nell'altra classe e passare il valore a questo. – Sergi0