Classes - C++ - Programmation
Marsh Posté le 24-07-2008 à 10:30:14
On va dire que tu veux instancier une classe, l'idée d'en créer une dans une méthode étant par trop farfelue pour être évoquée.
Et donc, oui, tu peux instancier des classes dans des méthodes. Au passage, je ne vois pas très bien où tu pourrais y arriver autrement.
Marsh Posté le 24-07-2008 à 10:43:04
Elmoricq a écrit : On va dire que tu veux instancier une classe, l'idée d'en créer une dans une méthode étant par trop farfelue pour être évoquée. |
En java tu peux
En Python aussi
Marsh Posté le 24-07-2008 à 10:51:57
Au passage, je ne vois pas très bien où tu pourrais y arriver autrement
comment ça ??
Marsh Posté le 24-07-2008 à 11:14:26
mathematica a écrit : Au passage, je ne vois pas très bien où tu pourrais y arriver autrement |
Ben où veux-tu instancier une classe ailleurs que dans une méthode ?
Marsh Posté le 24-07-2008 à 11:18:36
masklinn a écrit : |
Possible, je suis un n00b en java et j'ai jamais touché à python. Ça sert à quoi ? Petites classes temporaires ? Ça lourdise pas trop le code de faire ça ?
Marsh Posté le 24-07-2008 à 11:21:00
Elmoricq a écrit : |
En java, ça sert surtout parce qu'il n'y a pas de fonctions de première classe, donc on remplace ça par des classes (anonymes ou non).
En Python, c'est parfois utilisé au niveau classe (créer une classe dans une autre classe) pour stocker des métadonnées. Par contre une classe dans une méthode, je me souviens pas trop l'avoir vu.
Marsh Posté le 24-07-2008 à 11:35:35
oui oui c ça.
avez vous des supports des courts qui pourront m'indiquer comment manipuler des vector d'objets ..
en fait j'ai créer une classe et j'ai créer un tableau, les éléments du tablement sont de tupe ma classe, cependant je souhaite ajouter dans mon tableau des éléments de type ma classe ... comment faire ???
je voudrais aussi plus tard accéder a l'élément de mon tbleau sacaht que c'est des classes, comment faire aussi ??
je ne veux pas copier bêtement le code, j'ai bien envie de comprendre la structure des objets que je manipule et quels sont toutes les manipulations que je peux faire dessus.
Marsh Posté le 24-07-2008 à 11:39:40
Pour les vector, et pour le reste, tu peux regarder ici :
http://www.cplusplus.com/reference/stl/vector/
Ce site est très bien, je te conseille de le mettre en bookmarks.
Marsh Posté le 24-07-2008 à 12:14:51
merci pour votre réponse, mais vous conviendrez avec moi qu'il s'agit là d'un type particulier de vector, je ne cherche pas a manipuler juste des vectors mais plsutôt des vectors qui ont comme élément des objets (classes ) .... !!!
merci bcp de venir a mon aide.
Marsh Posté le 24-07-2008 à 13:37:23
Euh, non, il ne s'agit pas là d'un type particulier de vector. Les vector utilisent des "templates" qui sont des types génériques, ce qui signifie que tu peux mettre tout ce que tu veux dedans : instances de classes et types de bases.
Une petite aide sur les templates : http://www.cplusplus.com/doc/tutorial/templates.html
Marsh Posté le 24-07-2008 à 13:50:20
je vous remercie mais ça ne m'aide pas bcp tous ça. Un peu trop compliqué ! en plus c en anglais je ne comprend pas tous
Marsh Posté le 24-07-2008 à 13:56:02
Exemple rapide pour illustrer.
Soit une classe foo :
Code :
|
Tu as un vector de foo que tu appelles "bar" :
Code :
|
Si tu veux ajouter une instance de "foo" dans "bar" :
Code :
|
Tu veux parcourir ton vector :
Code :
|
etc.
Marsh Posté le 24-07-2008 à 14:27:41
Révise les bases du langage.
Marsh Posté le 28-07-2008 à 08:28:16
Je vous remercie pour votre réponse.
Je souhaiterais savoir si cette écriture est correcte ?
monTableau[i][j][k] = pointeurDeMaClasse->LaMethodeDeMaClasse()
MaClasse *PointeurDeMaClasse
Marsh Posté le 28-07-2008 à 16:33:34
sans savoir ce qui se cache derrière "monTableau" çà va être difficile de te répondre
Marsh Posté le 04-08-2008 à 14:11:01
oui oui oui ... tu as raison ... cette écriture est fausse
car ts dépends du type de "monTableau"
merci a vous !
Marsh Posté le 24-07-2008 à 10:27:10
Est ce que je peux créer une nouvelle classe dans une méthode d'une autre classe ???