static

static

by Arnaud Joachim Wist -
Number of replies: 2

Bonjour,

Si j'ai bien compris pour utiliser une variable de type static il faut obligatoirement qu'elle soit définie et également initialisée avec une valeur sinon ça ne marche pas.

J'ai donc un problème avec les static <vector>, est il possible d'une manière, d'initialiser le tableau afin qu'il soit vide mais quand même utilisable?

je détails ma situation:

Pour un int par exemple, le problème est vite résolu car il suffit de l'initialiser avec 0 puis de modifier la valeur par la suite.

Mais pour un vector il faut alors ajouter un élément, lorsqu'on veut l'utiliser,  modifier le premier élément puis pour les suivant utiliser push_back.

 Y a-t-il une solution afin de ne pas devoir différencier les 2 cas, celui du premier élément et celui des suivants?

In reply to Arnaud Joachim Wist

Re: static

by Ronan Boulic -
il existe plusieurs possiblités de déclarer un vector (revoir cours sem1).

dans un contexte avec static on ne connait aucune information au moment de la déclaration, donc on déclare un vector vide. Celui-ci sera mis à jour plus tard pendant la lecture du fichier.
In reply to Arnaud Joachim Wist

Re: static

by Arnaud Joachim Wist -

Pour répondre à ma propre question en espérant que ça aidera une autre personne.

Le static <vector> doit être initialisé également mais il peut être initialisé vide. Il y a donc la définition dans la class puis l'initialisation (qui est donc la même ligne que la déclaration mais sans le static au début) doit se trouver hors du corps de la classe et impérativement dans le .cc . A noter également que si vous avez supprimé le constructeur par défaut par défaut, certaines opérations avec le vector risquent de mal se passer.