Tableau d'objet comme variable d'instance

MrKribou Messages postés 21 Date d'inscription dimanche 18 août 2002 Statut Membre Dernière intervention 8 novembre 2002 - 20 sept. 2002 à 01:01
brozman Messages postés 12 Date d'inscription mardi 16 avril 2002 Statut Membre Dernière intervention 21 juillet 2006 - 23 sept. 2002 à 08:55
Bon dans le fichier .h (ou fait c comment qu'on appele se fichier la ? header ?) comment declare ton un tableau d'objet comme variable d'instance.

Par exemple, si je fais ca ca marche pas :
exObjet unOjet[];

et si je fais ca ca marche pas non plus :
exObjet unOjet[0];

Donc comment je dois faire, parce que la je veux et je dois juste le declarer et pas encore l'utiliser ni meme l'initailiser. Enfin ca sert a ca les .h ?

Ma question donc c'est le sujet du message : comment declare t'on un tableau d'objet comme variable d'instance en c++ ?

8 réponses

brozman Messages postés 12 Date d'inscription mardi 16 avril 2002 Statut Membre Dernière intervention 21 juillet 2006
20 sept. 2002 à 07:14
Salut,
je pense que ca doit etre ca que tu cherches :

exObjet *unObjet;

ensuite pour initialiser nb Objet :

unObjet=new exObjet[nb];

Brozman.
0
jimtruand Messages postés 18 Date d'inscription vendredi 15 mars 2002 Statut Membre Dernière intervention 27 octobre 2003
20 sept. 2002 à 11:25
salut,

pour procéder a l'initialisation des fichiers objet
n'oublie pas de le faire dans le constructeur

sinon les fichiers .h les fichiers include aussi je crois te permettent d'utiliser des fonctions
ex:# include "iostream.h"permet d'utiliser les fonctions d'entrees sorties cout cin.

a+
jim
0
jcecchi Messages postés 117 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 14 janvier 2003 3
20 sept. 2002 à 11:50
salut,

>> Par exemple, si je fais ca ca marche pas :
>> exObjet unOjet[];

si tu fais comme ca tu dois l'initialiser :
exObjet unObjet[] = { {objet1} , {objet2} , ... }

>> et si je fais ca ca marche pas non plus :
>> exObjet unOjet[0];

ici tu declares un tableau de 0 exObjet donc pas étonnant que ca ne marche pas.
Si tu connais d'avance le nombre d'objet de ton tableau tu fais :
exObjet unObjet[NBOBJET];
Sinon tu fais comme a dit brozman.
0
MrKribou Messages postés 21 Date d'inscription dimanche 18 août 2002 Statut Membre Dernière intervention 8 novembre 2002
21 sept. 2002 à 04:46
Merci ! ct la brozman que je desirai mais merci aussi pour les autres :)
J'avais juste (encore !) oublier que l'objet etait un pointeur !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
MrKribou Messages postés 21 Date d'inscription dimanche 18 août 2002 Statut Membre Dernière intervention 8 novembre 2002
22 sept. 2002 à 01:08
Bon donc j'ai essaye et ca marche par contre j'ai un probleme vraiment etrange. Tellement etrange que je me demande si ca viendrai pas du compilateur (Dev c++ cad g++ je crois).

Donc j'ai declarer ca :

int nb;
exObjet *unObjet;

ensuite pour l'initialiser dans le constructeur j'ai fait ca:

nb=0;
unObjet=new exObjet[nb];

Et la l'erreur qu'il me met en gros c'est qu'il ne trouve pas de constructeur correspondant pour l'objet de type exObjet.

Mais si j'essaye directement dans passer par une variable par exemple :

unObjet=new exObjet[0];

Il ne me met aucune erreur.

C'est moi qui devient fou ?
Donc si le probleme nn'est pas resolvable y a t'il un moyen pour le coutourner, de connaitre la taille d'un tableau ? du genre tab.length() en java.
0
brozman Messages postés 12 Date d'inscription mardi 16 avril 2002 Statut Membre Dernière intervention 21 juillet 2006
22 sept. 2002 à 10:22
C'est normal qu'il plante, tu déclares un tableau de 0 objet.

Brozman.
0
MrKribou Messages postés 21 Date d'inscription dimanche 18 août 2002 Statut Membre Dernière intervention 8 novembre 2002
22 sept. 2002 à 15:31
Et si je veux declarer un tableau de 0 objets j'ai bien le droit non ? C'est pas cense pose probleme.

Mon tableau c'est une variable d'instance, donc quand je construit l'objet je suis bien oblige d'initialiser le tableau mais vu que pour l'instant ya rien dedans j'y mets rien et apres quand j'y ajouterai quelque je modifierai la taille du tableau.
C'est pas interdit ca quand meme ?

De toute facon comme j'ai dit, le probleme est pas la. Si j'initialise directement le tableau a 0 sans passer par une variable de type entier ca pose pas de probleme. C'est juste quand je passe une variable pour definir la taille du tableau qu'il me dit qu'il trouve pas de constructeur de ce type pour l'Objet du tableau.

Le probleme est si con que je me demande si ca serait pas une erreur du compilateur (Dev c++ agit bizarrement parfois).

Relis mieux mon post precedent si tu comprends pas trop ce que je veux dire.
0
brozman Messages postés 12 Date d'inscription mardi 16 avril 2002 Statut Membre Dernière intervention 21 juillet 2006
23 sept. 2002 à 08:55
Je ne comprends pas ton raisonnement, j'ai juste une question ?
A quoi ça sert de declarer 0 objet ? autant rien declarer, non ?

Dans ton .h, tu declares ton pointeur sur le tableau
avec exObjet *unObjet;

Tu l'initialises ensuite dans ta fonction qui remplit le tableau. Pourquoi veux-tu l'initialiser avant ?
0
Rejoignez-nous