nisaloncaje
Messages postés154Date d'inscriptionsamedi 7 janvier 2006StatutMembreDernière intervention28 septembre 2008
-
29 avril 2006 à 13:44
saibe
Messages postés46Date d'inscriptionlundi 19 mai 2003StatutMembreDernière intervention16 avril 2009
-
2 mai 2006 à 05:15
Bonjour, je suis débutant en c++ et j'aimerais savoir comment faire pour créer un tableau dynamique d'objets, c'est à dire un tableau d'objet donc je puisse modifier la taille etc ..., sachant que ce tableau d'objet doit etre un des attributs d'un autre objet
saibe
Messages postés46Date d'inscriptionlundi 19 mai 2003StatutMembreDernière intervention16 avril 2009 29 avril 2006 à 18:57
salut !
même débutant si t'es motivé tu vas vite comprendre...
personnellement j'utilise 2 types de tableau bien pratique : CTypedPtrList et CList
sous VC6
pour les utiliser tu dois rajouter
#include dans le StdAfx.h
puis tu les utilises comme ca
tu crées ton objet dérivé de CObject
class MonObjet :: public CObject
{
//avec tout ce que tu veux dedans : fonctions, variables
};
ensuite dans ton appli ou dans une autre class tu définis ta liste d'objets
(je te donne un exemple pour une liste de pointeurs car c'est celle que j'utilise le plus...
la CList est une liste objets mais elle est moins souple...)
CTypedPtrList<CObList, MonObjet*> m_ListeObjets;
que tu manipules comme ça :
MonObjet* objet = NULL;
objet = new MonObjet();
m_ListeObjets.AddTail(objet); // pour ajouter
et tu peux parcourir ta liste comme suit :
POSITION pos = m_ListeObjets.GetHeadPosition();
while(pos)
{
objet = m_ListeObjets.GetNext(pos);
}
sous VC6 tu pourras voir toutes les fonctions de la liste.
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 29 avril 2006 à 20:27
Mais je pense que avant d'utiliser des abstractions. Il faudrait savoir utiliser les outils de bases:
class ton_objet
{
...
};
Dans ton main
ton_objet * mon_tableau_objet = new ton_objet[10]; // <= créer un tablea de 10 objets.
Donc ca, ca créer un tableau d'objet. Pour avoir une taille variable,
tu en récréés un nouveau plus grand et tu copies l'ancien dans le
nouveau. Voila comment il faudrait faire.
Perso, je ne connais pas VC, mais juste les outils du C++.
En C++, on utiliserait la STL.
#include <vector>
using namespace std;
dans ton main:
vector<ton_objet> mon_tableau_taille_variable;
ton_objet un_objet;
mon_tableau_taille_variable.push_back(un_objet); // ajoute en fin de tableau un élément.
on accèdre aux objets par:
mon_tableau_taille_variable[0]; <= accès au premier objet
mon_tableau_taille_variable.size(); <= retourne la taille du tableau.
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 29 avril 2006 à 20:38
Tiens sinon j'avais pas noté, mais:
[auteurdetail.aspx?ID=104485 saibe] => CTypedPtrList et CList ne sont probablement pas des tableaux mais des listes.
saibe
Messages postés46Date d'inscriptionlundi 19 mai 2003StatutMembreDernière intervention16 avril 2009 2 mai 2006 à 05:15
salut luhtor !
en effet ce sont des listes mais tel que j'ai compris la question ct mettre à la suite l'un de l'autre des objets sans forcément avoir besoin d'indexation. donc ici, tableau ou liste c'est pareil. qu'en penses tu ?
saibe