Bonjour,
y a t il un equivalent de type "Object" de JAVA en C++, par ce que je veux creer un tableau dont chaque case est de type different,
Merci d avance.
Bonjour,
y a t il un equivalent de type "Object" de JAVA en C++, par ce que je veux creer un tableau dont chaque case est de type different,
Merci d avance.
Bonjour,
Il vous suffit de définir un sur-type (une classe abstraite) des types que vous voulez utilisez et de dire que votre tableau contient de pointeurs vers ce sur-type. Et rien ne vous empèche de nommer cette sur-classe Object![]()
Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour)
N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML
Bonjour,
Merci pour la reponse mais ce que je veux faire c'est creer un tableau de plusieurs types de base par exemple un tableau dont la 1ere case "int", la 2eme "float", la 3eme "string", la 4eme "classe" ...etc,
Merci d avance et desolé pour le derangement.
dans ce cas deux possibilités:
- vous passez toujours pas une classe intermédiaire héritant d'Object, par exemple pour un int une classe Integer avec un attribut de type int, etc, c'est à dire finalement quelque chose d'équivalent à ce que fait Java
- ou vous définissez une classe conteneur contenant une union permettant de mémoriser les différents types de valeurs possibles, et un attribut discriminant vous permettant de savoir quel est le type de la valeur. Au final quelque chose équivalent aux unions d'IDL
Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour)
N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML
Salut,
Ceci dit, il faut bien comprendre qu'il est fondamentalement incorrect de vouloir faire cohabiter strictement tout et n'importe quoi...
Lorsque tu crées une collection, tu la crée en fonction de certaines caractéristiques: tout ce qui peut être considéré comme un véhicule d'un coté, tout ce qui peut être considéré comme un arbre de l'autre, tout ce qui peut être considéré comme... va savoir...
En effet, même si tu te dis que "tout est objet" (un peu à la manière de ce que fait java) tu te retrouve confronté au problème que, tout ce que tu pourra faire au départ de ta collection d'objet, c'est de tout considérer comme étant... un objet.
Or, tu attendra fatalement des services différents d'un animal, d'un véhicule, d'un outil ou d'un arbre.
Au final, soit tu aura une interface "minimaliste" pour ton objet, et ta collection d'objet est inutilisable en tant que tel, ou bien tu crées une interface plus importante pour celui-ci, et tu en viendra à permettre de démarrer à un arbre... Ce qui n'a pas vraiment de sens![]()
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
Sinon regarde du cote de boost::any
Mais comme les autres l'ont dit plus haut, ca n'a pas de sens de mettre n'importe quoi dans ton tableau (probleme de conception ?)
si la liste des types stoquable est connue à l'avance, boost::variant sera de meilleur aloi que boost::any
Partager