Gestion de tableaux - Besoin de conseil - C++ - Programmation
Marsh Posté le 07-04-2005 à 12:09:48
Sve@r a écrit : Donc j'ai fait un essai simple qui fonctionne très bien mais j'aimerais savoir si, conceptuellement, c'est bien pensé. |
Bon, conceptuellement (ou plutôt : eu égard aux habitudes qu'on a en C++), c'est mal pensé.
On préfère découpler les choses. Or là, ta classe CElem contient une information qui ne concerne que CArrayElem (la taille max). Et lorsque tu te mettras à utiliser la STL, tu verras que ça a encore plus de sens: le conteneur et le contenant ne se connaissent pas du tout. Ils sont combinés ensemble par généricité (templates).
Mais avant d'aller plus avant, est-ce que tu peux nous expliquer ce que tu essayes de produire pour le moment. Parce qu'il y a beaucoup de choses qui ne sont pas catholiques en C++ (le fait que ça soit toléré ne veut pas dire que ça soit raisonnable) : le malloc, les printf, la classe interne non nécessaire, le #define, etc.
Marsh Posté le 07-04-2005 à 12:58:11
Moi je te conseille le type vector (#include <vector> ) qui est un ciontenaur assez puiissant, il possède notamment les itérateurs qui évite de parcourir toute la liste de ton tableau. Je m'explique :
#include <vector>
using std::vector ;
int main(void)
{
vector<MonType> mon_vect ;
// si tu connais la taille à priori
mon_vect.resize(la_taille);
for (vector<MonType>::iterator it = mon_vect.begin() ; it < mon_vect.end() ; ++it)
{
// it est une sortede pointeur pointant sur le ième élément du vecteur
*it = elt_de_type_montype ;
}
// si tu ne connais pas la taille à priori tu as la méthode
mon_vect.push_back(un_elt) ;
// bref t'as plein de moyens de le faire, à noté aussi le
// type const_iterator qui s'utilise comme le type iterator
// sauf que tu ne doit pas change la valeur ......
}
Marsh Posté le 07-04-2005 à 14:13:55
=> Lam's
J'essaye juste de gérer tranquillement un tableau d'éléments. Donc j'avais pensé créer ma classe qui gère le tableau et la classe de l'élément. Et j'avais pensé aux membres statiques pour gérer le nb d'éléments. surtout que dans les bouquins, c'est expliqué qu'un membre statique n'est plus inclus dans une instance de classe mais gère la classe elle-même ce qui me paraissait une bonne idée.
Apparemment, le "vector" sert à ça
=> Seigneur Harry
Merci de ton exemple. Apparemment, ça a l'air puissant.
Merci pour les infos
Marsh Posté le 07-04-2005 à 14:26:12
y a pas à dire c'est beau le C.
Et puis Coplien se retourne encore une fois dans sa tombe. Merde il est pas mort.
Marsh Posté le 07-04-2005 à 11:49:29
Bonjour,
je suis en train de me mettre au C++. Il se trouve que je dois gérer un tableau d'objets. J'ai donc créé une classe "cArrayElem" qui s'occupe de la gestion du tableau et une classe "cElem" qui s'occupe de chaque élément.
De plus, pour pouvoir gérer le nb d'élements, j'aurais pu mettre une variable "nb" dans la classe "cArrayElem" mais j'ai préféré mettre une variable statique "nb" dans la classe "cElem"
Donc j'ai fait un essai simple qui fonctionne très bien mais j'aimerais savoir si, conceptuellement, c'est bien pensé.
Voici le source
Merci de m'avoir lu
Message édité par Sve@r le 07-04-2005 à 11:50:10