[c++builder6] Aide sur création d'une classe (svp)?

Signaler
Messages postés
10
Date d'inscription
jeudi 21 février 2002
Statut
Membre
Dernière intervention
7 décembre 2004
-
Messages postés
249
Date d'inscription
mardi 16 juillet 2002
Statut
Membre
Dernière intervention
7 août 2003
-
Bonjour,

J'aimerais utiliser une classe où je vais avoir des fonctions à l'intérieur. Mais je n'arrive pas à trouver la solution à mon problème.

En fait je voudrais avoir une classe MaClasse qui me permette d'ajouter ou d'enlever des éléments, et que les dimensions du tableau s'adaptent automatiquement....

exemple : Je voudrais pouvoir utiliser ma classe MaClasse(en fait comme dans VB6) comme ceci : Additionner, enlever des éléments...etc...etc...car les données vont devoir être manipuler fréquemment sans savoir le nombre d'éléments qu'il va y avoir dans la classe :

MaClasse.add("resultats","data1","data2");
MaClasse.GetCount(...);
MaClasse.Remove(numero de l'element);
MaClasse.MaFonction1(...);
MaClasse.MaFonction2(...);

Donc je ne trouve pas d'aide sur cette exemple, ou puis-je trouver un tut, ou une source ?

Je crois que c'est une classe conteneur, mais je n'en sais pas plus......

Merci de bien vouloir m'aider
Frederic

1 réponse

Messages postés
249
Date d'inscription
mardi 16 juillet 2002
Statut
Membre
Dernière intervention
7 août 2003
1
-------------------------------
Réponse au message :
Ce que tu veux faire c'est une LISTE CHAINEE où tu peux rajouter des données ou les enlevées comme tu veux sans faire un gaspillage de mémoire.

2 solutions s'offre à toi:

La STL te propose différentes classes. Essaye les et regarde celle qui te convient le mieux suivant tes besoins. L'avantage tu auras moins de débogage à faire et c'est performant et ça participie à la réutilisation du logiciel. Mais si tu a qqch de précis à faire avec ça ne conviendra peut-être pas.

Sinon tu créer ta propre classe (j'explique le principe seulement):
Tu créer une classe Noeud qui contiendra t'as donnée (ce que tu veux quoi) et en plus elle aura deux pointeur. UN vers le noeud précédent et l'autre vers le noeud suivant. Si il n'y a pas de noeud précédent ou pas de noeud suivant le pointeur est sur 0.

Tu créer une deuxième classe liste qui aura un pointeur sur le premier et dernier noeud. Dedans tu met des fonction uniquement pour gérer ta liste:
add qui insèrerea un pointeur au début.
remove qui suprimera un pointeur passé en paramètre
Tu devras faire des manipulation de pointeur sans perdre les noeud sinon tu gaspillera de la mémoire car chaque nouveau noeud sera créé dynamiquement.

Il est beaucoup trop long de tout expliquer à propos des listes chaînées et toutes leur subtilités. Mais tu trouvera des exemples sur cppfrance et notamment ma source (hop un peu de pub :) qui utilise des listes chaînées pour gérer des images et bouttons. Le web regorge de ressource sur les liste chaînée et la STL.
-------------------------------

> Bonjour,
>
> J'aimerais utiliser une classe où je vais avoir des fonctions à l'intérieur. Mais je n'arrive pas à trouver la solution à mon problème.
>
> En fait je voudrais avoir une classe MaClasse qui me permette d'ajouter ou d'enlever des éléments, et que les dimensions du tableau s'adaptent automatiquement....
>
> exemple : Je voudrais pouvoir utiliser ma classe MaClasse(en fait comme dans VB6) comme ceci : Additionner, enlever des éléments...etc...etc...car les données vont devoir être manipuler fréquemment sans savoir le nombre d'éléments qu'il va y avoir dans la classe :
>
> MaClasse.add("resultats","data1","data2");
> MaClasse.GetCount(...);
> MaClasse.Remove(numero de l'element);
> MaClasse.MaFonction1(...);
> MaClasse.MaFonction2(...);
>
> Donc je ne trouve pas d'aide sur cette exemple, ou puis-je trouver un tut, ou une source ?
>
> Je crois que c'est une classe conteneur, mais je n'en sais pas plus......
>
> Merci de bien vouloir m'aider
> Frederic