begin process at 2012 05 30 18:06:44
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

Tableau d'objets


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Tableau d'objets

samedi 29 avril 2006 à 13:44:53 | Tableau d'objets

nisaloncaje

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 J'ai donc le schéma suivant : objet1 | | - Variables ... | - Tableau d'objets - obj[0] - obj[1] .... Merci d'avance de vos réponses PS : Quelqu'un aurait-il le même problème que moi : depuis quelques temps, quand je me connecte sur cppfrance j'ai la fenetre suivante qui s'affiche : http://www.hiboox.com/image.php?img=7vwuq5e.jpg
samedi 29 avril 2006 à 18:57:05 | Re : Tableau d'objets

saibe

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 <afxtempl.h> 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.

j'espère avoir été clair...
saibe
samedi 29 avril 2006 à 20:27:10 | Re : Tableau d'objets

luhtor

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.

Pour un peu plus de détails:
http://allproginfo.free.fr/Programmation/Cpp/Vector.html

Pour tous les détails:
http://www.sgi.com/tech/stl/index.html
samedi 29 avril 2006 à 20:38:12 | Re : Tableau d'objets

luhtor

Tiens sinon j'avais pas noté, mais:
saibe => CTypedPtrList et CList ne sont probablement pas des tableaux mais des listes.


mardi 2 mai 2006 à 05:15:27 | Re : Tableau d'objets

saibe

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



Cette discussion est classée dans : objet, tableau, obj, objets


Répondre à ce message

Sujets en rapport avec ce message

Tri de tableau d'objets... [ par dbiare ] Bonjour J’ai un petit souci en Visual C++6… Je détiens, après traitement, deux indices (i et j) d’un même tableau d’objet : m_oaBras[]. Je dois permut utilisation de delete sur des objets... ca marche comment ? [ par vincemail ] Bonjour, je voudrais savoir comment fonctionne delete sur des objets.. Par exemple j'ai un objet Tableau qui contient un membre *tableau (qui est bien Quelle est la meilleur solution pour deplacer des objets independemment [ par adess00 ] Coucou Je fais un structure qui enregistre la position de chaque objets dans ma scene Et je voudrais savoir quelle est la meilleur methode Voici cell gestion d'une multitude d'objets, interactions dans l'espace [ par cppdupdup34 ] alors voila j'ai une petite question !Comment gerer une multitude d'objets géométriques dans un espace tridimensionnel ?A titre d'exemple, sur une map threads : synchroniser l'acces à des données en mémoire [ par guerald ] Bonjour, Voila mon problème jai "n" threads qui doivent partager un objet en mémoire. Pour des soucis d'obtimisation l'objet doit pouvoir être access Comment recupéré un element d'une liste? [ par Sat83 ] Bonjour!J'ai une liste d'Objet:list canaux;Où Data est une classe...Comment faire pour récupéré le Nième element de cette liste?Comme avec un tableau Construire un objet CByteArray à partir d'un tableau de Bytes [ par Taoufik77 ] Salut,Quelqu'un aurait uen idée pour créer un objet de type CByteArray à partir d'un tableau de bytes. J'ai pensé à la méthode SetAt(int nIndex, CObje Instance de classe (question stupide) [ par CyberP ] Une petite question idiote que je ne me suis jamais posée (je n'ai jamais rencontré ce problème auparavant d'ailleurs) J'ai ce code : struct Objet { modifier la taille d'un tableau d'objet [ par istdasklar ] Bonjour, Je travaille sur de tres grand tableau d'objet, (de l'ordre de 10000 objet par tableau). Mais, je sais pas trop my prendre, pour agrandir [Allegro] Animation d'objets [ par GoldenEye ] La situation est simpleOn est en true color (Allegro)J'ai un décor de fond statique (BITMAP *decor)J'ai un petit objet mobile (BITMAP *objet)Le petit


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales