Bonsoir à tous ,
Je suis encore débutant en C++ ,
je voudrais savoir comment créer un tableau de pointeurs sur des objets de type (par ex :TFenetre).
et ensuite utiliser ces pointeurs pour acceder à l'objet correspondant.
Merci.
Bonsoir à tous ,
Je suis encore débutant en C++ ,
je voudrais savoir comment créer un tableau de pointeurs sur des objets de type (par ex :TFenetre).
et ensuite utiliser ces pointeurs pour acceder à l'objet correspondant.
Merci.
TFenetre * tab_pt_fenetre [10];
Ou bien avec malloc :
TFenetre ** pt_pt_fenetre = malloc(10*sizeof(*pt_pt_fenetre));
Tu t'es trompé de forum ?Envoyé par Médinoc
Pour le reste :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 #include <vector> std::vector<TFenetre*> Tab;
http://c.developpez.com/faq/cpp/?page=STL#STL_vector
Arrrrrg !!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part TFenetre ** pt_pt_fenetre = malloc(10*sizeof(*pt_pt_fenetre));
Envoyé par Loulou24
![]()
J'ai lu "tableau", j'en ai oublié les conteneurs (j'ai grandi sans, je viens à peine de réapprendre le C++ avec la STL...)
Quant au new, je ne sais pas ce que j'en ai fait...
TFenetre ** pt_pt_fenetre = new TFenetre *[10];
merci déja de me répondre ,
Je suis encore débutant en C++,alors j'ai pas compris le TFenetre **
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 TFenetre ** pt_pt_fenetre = malloc(10*sizeof(*pt_pt_fenetre));
Pourquoi il y a 2 (*).
autre chose ,je pense que malloc sert à allouer de la mémoire pour les objets en question .
mais moi je veux créer par moi même ces objets , et ensuite seulement mémoriser l'adresse de ces objets dans ce tableau depointeurs.
par ex comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 TFenetre Fenetre();//initialisation de l'objet Tab[index]=&objetFenetre;//????? //ensuite utiliser l'adresse contenue dans le tableau (*Tab[index]).méthode();//est ce juste ???
Utilise vector.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 std::vector<TFenetre*> Tab; Tab.push_back( &objetFenetre1 ); Tab.push_back( &objetFenetre2 ); Tab.push_back( &objetFenetre3 );
TFenetre ** parce que c'est un pointeur de pointeur (L'adresse d'un tableau de pointeurs et un pointeur vers le premier d'entre eux).Envoyé par bassim
Le malloc() (ou le new dans mon autre post) ne crée pas les objets, seulement des pointeurs non-initialisés (ils ne pointent vers rien du tout).
après, tu aurais pu faire :
pt_pt_fenetre[3] = new TFenetre( parametres );
Mais nous sommes en C++ il est vrai, ce que j'ai dit était plutôt digne du langage C.
Ici, utilise plutôt le conteneur vector de la stl, comme l'indique Aurélien.
le probleme c'est que je travaille avec Turbo C++ version 3.0 (sous_dos),
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 std::vector<TFenetre*> Tab; Tab.push_back( &objetFenetre1 ); Tab.push_back( &objetFenetre2 ); Tab.push_back( &objetFenetre3 );
c'est le prof qui nous l'a imposé .
et j'ai cherché dans l'aide ,et je n'ai trouvé ni vector ni std.
Ah ben oui![]()
Turbo C est le plus mauvais choix que je connaisse pour faire du C++, je sais pas ce qui lui prend à ton prof![]()
Domage que je n'ai plus acces a CFront... ca aurait vraissemblablement plu a ton prof. :-)Envoyé par bassim
Rassure-moi, c'est pas presente comme un cours de C++ mais comme un cours d'autre chose ou le C++ est utilise.
Finalement , j'ai réglé le probleme et il n'était pas en rapport avec le tableau de pointeurs... mais merci comme même pour vos réponses.
Il nous a demandé de faire un gestionnaire de fenetres qui crée les fenetresEnvoyé par Jean Marc Bourguet
et permet toutes les choses qu'un gestionnaire comme celui de Windows peut faire (mais en plus simple bien sûr).
rassures toi , ce n'est pas présenté comme un cours sur le C++ ,
d'ailleurs on a même pas fait de cours sur le C/C++ tout au long de mon cursus universitaire ;
on a été obligé d'apprendre tout , tous seuls ...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager