Est-il possible de mettre un objet de taille variable (genre conteneur stl) en donnée static un classe ?
C'est certainement une question conne mais bon je ne vois pas pourquoi cela ne marcherait pas en même temps je ne l'est jamais vu faire.
Version imprimable
Est-il possible de mettre un objet de taille variable (genre conteneur stl) en donnée static un classe ?
C'est certainement une question conne mais bon je ne vois pas pourquoi cela ne marcherait pas en même temps je ne l'est jamais vu faire.
Ce serait quand même plus rapide d'essayer de compiler les 3 lignes nécessaires au test que de venir poster ici, non :roll:
Enfin la réponse à ta question est la suivante : non, aucune raison de ne pas pouvoir le faire.
Je l'ai fait et effectivement ça compile, mais par expérience je sais que c'est par parceque ça compile que ça marche. Et je sais que si cela avait posé des problèmes de gestion mémoire s'aurait été plutot chaint à trouver. :mouarf:Citation:
Envoyé par Laurent Gomila
C'est pas faux :lol:Citation:
Envoyé par BigNic
Au fait, un objet, un conteneur STL ou pas, est toujours de taille fixe. sizeof(std::vector) est une constante, comme tous les sizeof.
Je ne savais pas !Citation:
Envoyé par JolyLoic
Mais alors cela veut dire que quelquesoit son nombre d'éléments, le conteneur fais la même taille ?
Comment est-ce possible ?
Il les met où ces données ?
Sur le tas.
Je ne comprends pas bien...
c'est parfaitement possible de mettre un conteneur STL en variable static.
Quel est le probleme alors ?
Aucun problème. Juste que j'ai vu des mots qui laissaient entendre une mauvaise compréhension du C++.
Pour préciser le coup de la taille fixe : Un vector, en première approximation, est implémenté à l'aide d'un pointeur. Ce pointeur pointe sur une zone de mémoire allouée dynamiquement, et de taille variable. Par contre, le vecteur lui même a pour taille la taille du pointeur (plus les 2/3 autre choses que j'ai passé sous silence), qui est fixe.