Accueil > Forum > > > > Vector de plusieurs types
Vector de plusieurs types
dimanche 14 janvier 2007 à 16:25:22 |
Vector de plusieurs types

nisaloncaje
|
Bonjour, j'aimerais créer un tableau de type vector, mais que ce tableau puisse contenir plusieurs type d'objets mais qui héritent tous d'une meme classe : si j'ai par exemple trois classes a1,a2,a3 qui héritent de la classe A, j'aimerais que le tableau puisse contenir indifféremment des objets de type a1,a2,a3
Merci d'avance
nC
|
|
dimanche 14 janvier 2007 à 18:28:09 |
Re : Vector de plusieurs types

rrk275
|
Voila un exemple valant mille fois des ( mes ) explications :
#include <stdio.h> #include <stdlib.h> #include <vector>
class a { public: int membre; virtual int aff() = 0; };
class b : public a { int aff() { printf("%d\n",membre*2); } };
class c : public a { int aff() { printf("%d\n",membre*2+1); } };
int main() { std::vector<a*>Tab; a * filsB = new b; filsB->membre = 1; a * filsC = new c; filsC->membre = 1; Tab.push_back(filsB); Tab.push_back(filsC); for(int i=0;i<Tab.size();i++) Tab[i]->aff(); printf("\n"); return 0; }
( la seule subtilité étant le fait d'utiliser des pointeurs pour instancier les objets ... ) Louis
|
|
dimanche 14 janvier 2007 à 18:29:36 |
Re : Vector de plusieurs types

rrk275
|
Oups un ptit int s'est glissé dans ma déclaration .. on peut le remplacer par un void j'espere que tu m'en voudras pas ^_^
Louis
|
|
vendredi 19 janvier 2007 à 20:08:02 |
Re : Vector de plusieurs types

nisaloncaje
|
d'accord. Donc si je comprends bien : on fait un vector contenant en fait les adresses des variables, n'est ce pas ?
|
|
samedi 20 janvier 2007 à 08:09:06 |
Re : Vector de plusieurs types

rrk275
|
En fait il faut que tes objets soit déclaré du type de la classe mère qui ici est abstraite donc forcement des variables .. oui ..
Louis
|
|
samedi 20 janvier 2007 à 20:19:45 |
Re : Vector de plusieurs types

nisaloncaje
|
Merci beaucoup !!! Et pour les supprimer du tableau, il faut que je détruise l'objet deux fois non ? une fois dans le tableau et une fois hors du tableau ? et si oui, comment faire pour faire le lien entre l'objet hors du tableau et dans le tableau ?
|
|
samedi 20 janvier 2007 à 20:42:40 |
Re : Vector de plusieurs types

nisaloncaje
|
Et comment faire pour, par exemple créer toute une série de n objets de type b, et les mettre dans le tableau avec un for?
Car ici, on déclare les objets 1 par 1 puis on les met dans le tableau ...
|
|
samedi 20 janvier 2007 à 23:28:04 |
Re : Vector de plusieurs types

rrk275
|
Voila je t'ai concocté un exemple légerement commenté :
#include <stdio.h> #include <stdlib.h> #include <vector>
class a { public: virtual int aff() = 0; };
class b : public a { int aff() { printf("objet B\n"); } };
class c : public a { int aff() { printf("objet C\n"); } };
int main() { std::vector<a*>Tab; for(int i=0;i<8;i++) { // premiere méthode pour allouer, on crée comme avant .. mais en boucle !! a * filsC = new c; Tab.push_back(filsC); } for(int i=0;i<8;i++) { Tab.push_back(NULL); Tab[Tab.size()-1] = new b; // on crée directement sur le tableau // on aurait même simplifier en Tab.push_back(new b); class nan ?? ^^ } for(int i=0;i<Tab.size();i+=3) { Tab[i]->~a();// voila comment on efface ... Tab[i] = NULL; // pour ensuite savoir lequels pointe bien sur qqchose ( l'erreur est très joli //sinon ) .. :D } for(int i=0;i<Tab.size();i++) if(Tab[i]!=NULL) // faut éviter d'appeller des objets "vides" .. Tab[i]->aff(); else printf("Aucun objet\n"); printf("\n"); // au cause de la bufferisation du stdout ... return 0;// toujours mettre un return 0 ... }
|
|
dimanche 21 janvier 2007 à 12:42:43 |
Re : Vector de plusieurs types
|
dimanche 21 janvier 2007 à 22:27:35 |
Re : Vector de plusieurs types

rrk275
|
En fait pour le Tab[i]->~a(); je pense qu'il vaut mieux mettre delete Tab[i] .. La virtual sert à utiliser des objets mixtes, ici on l'utilise sous forme a .. sinon il faudrait caster en b ou c ...
Louis
|
|
Cette discussion est classée dans : type, tableau, vector, types, contenir
Répondre à ce message
Sujets en rapport avec ce message
tableau de structures type pointeur [ par chocho ]
Voila, je fait en c unpetit utilitaire de gestion d'adhérents.pour cela j'uilise un tableau de structure adhérent composée de deux pointeurs char *nom
Tableau de type feuille Excel [ par pde ]
Comment créer en C++ un tableau de type feuille Excel, comportant des lignes et des colonnes, dans un contrôle ou une vue ?
sérialisation d'un bool ou un type enum [ par iznogoud ]
Bonjour,J'ai un petit problème lorsque j'utilise ma fonction serialize. Je suis incapble de rentrer des types bool ou des types que j'ai créer. Je sai
Conversion de types de données... [ par nullspace ]
J'ai jamais réussis à trouver une bonne solution pour convertir un type de variable dans une autre variable ayant un autre type.Par exemple...si j'ai
[C++ 7(.NET)]Création d'un vector ou tableau Object [ par sfouilloux ]
bjr,comment créer un tableau d'objet ou un vecteur en c++ managé sous VS.NET 2003.Merci
comment faire insérer du 'char' dans un tableau de 'double' [ par felisk ]
J'ai créé un tableau où je stocke des valeurs de type 'double', j'aimerai dans les prières ligne de ce tableau insérer quelques lignes de commentaires
Tri coordonnées XYZ dans tableau de type xyz[].s[] [ par MissSixty ]
Salut ! Mon tableau xyz[NbNoeuds].s[va de 0à2] permet d'associer la coordonnées x, y, z à un noeud. Ces coordonnées ne suivent aucun ordre particulie
convertion de type [ par lu6fer ]
voila je cherhe a convertir un tableau de caractere en entier.ce tableau contient des chiffre servant d'identificateur.et je voudrai le faire grace a
STL vector et tableau [ par cybermax62 ]
j'ai une petite question sur la classe template vector. je sais que c'est possible d'initiliser un vector avec un tableau point de vue C (char[]). j'a
tableau multidimentionnel en C++ [ par paskouaouch ]
Bonjour, je souhaiterais savoir s'il ya moyen de créer des tableau en C++ de dimention n (n= 3, 4, 5 ou plus...) sans utiliser double***** tab,vector
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2010 : SHAREPOINT 2010 POUR LES DéVELOPPEURSTECHDAYS PARIS 2010 : SHAREPOINT 2010 POUR LES DéVELOPPEURS par ROMELARD Fabrice
Animé par: Laurent Cotton Le développement dans SharePoint 2010 passe par plusieurs axes qui seront évoqués dans cette session, mais plus particulièrement les développements simples lié au besoin Business Business Connectivity Services Ce BCS es...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOURTECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOUR par ROMELARD Fabrice
Cette session est la dernière pleinière de ces 3 jours de TechDays Paris 2010. Généralement, cette troisième journée est plus axée sur l'avenir vu par Microsoft. Après un retour sur l'avenir vu par la Science Fiction ou par ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion
Forum
RE : WIN APIRE : WIN API par racpp
Cliquez pour lire la suite par racpp
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
Comparez les prix

HTC Hero
Entre 550€ et 550€
|