vecteur de classes [c++] - C++ - Programmation
Marsh Posté le 07-12-2004 à 20:58:21
c'est vector<> que tu utilises, où tu as refais ta propre template à-la-vector, ou tu as fait une classe vecteur<> qui dérive de vector<> ?
Marsh Posté le 07-12-2004 à 20:58:43
bjone a écrit : c'est vector<> que tu utilises, où tu as refais ta propre template à-la-vector, ou tu as fait une classe vecteur<> qui dérive de vector<> ? |
j'utilise vector<>
Code :
|
Marsh Posté le 07-12-2004 à 20:59:16
et de toutes manières si ta classe dans le vector<> a .affiche() ça devrait marcher.
Marsh Posté le 07-12-2004 à 20:59:53
avec vector<Client *> :
VecCli[20]->affiche();
avec vector<Client> :
VecCli[20].affiche();
Marsh Posté le 07-12-2004 à 21:00:46
sinon attention à la destruction de ton vector<>, tes instances de Client ne sont pas détruites.
Marsh Posté le 07-12-2004 à 21:03:39
J'adore VC6, il ne voulait pas le faire, je recompile, et hop, miracle, les methodes apparraissent
Désolé du dérangement les gars
J'avais essayé comme ca d'abord, mais je sais pas ce qui a merdé
Enfin bon, ca marche c'est le principal
Marsh Posté le 07-12-2004 à 21:04:10
bjone a écrit : sinon attention à la destruction de ton vector<>, tes instances de Client ne sont pas détruites. |
oui j'ai vu ca en faisant une recherche ici, il faut faire une boucle avec un delete dedan
Marsh Posté le 07-08-2013 à 18:25:09
didier1809 a écrit : |
Salut
C'est exactement mon problème actuel , Comment faire cette boucle avec un delete?
Merci
Marsh Posté le 07-08-2013 à 18:30:06
T'as deux solutions :
Code :
|
Maintenant, ce que je te recommanderais c'est de ne pas utiliser de pointeurs nu mais des std::unique_ptr / std::shared_ptr pour gérer le cycle de vie de tes objets. (La destruction se fera sans delete)
Marsh Posté le 07-08-2013 à 18:35:18
j'aurais plutôt dit : t'as deux solutions : les std::shared_ptr (si tu veux étendre la durée de vie au-delà de celle de ton conteneur) ou les std::unique_ptr (si tes données ont une durée de vie strictement égale à celle de ton conteneur).
Ca t'évite de te soucier avec la boucle pour libérer. C'est plus propre. C'est du C++ moderne.
Marsh Posté le 07-12-2004 à 20:46:05
Bonjour, j'ai 'fait' un vector de classes, que je remplit avec des objets de ma classe principale, ou des objets hérités.
Mais j'aimerai pouvoir faire par la suite : vecteur[i].affiche(); par exemple, ou affiche est une fonction de mes classes, mais le compilateur (Visual .NET) me dit que error C2228: left of '.affiche' must have class/struct/union type
Il doit exister un moyen de contourner ca, je pense, mais je ne sais pas lequel.
Merci
---------------
.