questions générales sur pointeurs et classes/objets
salut tous,
je ne suis pas très à l'aise avec les pointeurs sur objets, les classes... du coup j'ai besoin d'une confirmation sur l'utilisation des pointeurs sur objets/classes afin de bien débuter ma programmation.
voici tout d'abord des éléments généraux sur mon futur programme
1°) mon programme contient une classe principale "Princip"
2°) une methode de cette classe va faire appel à des "objets principaux" d'autres classes "o_p1, o_p2, o_p3" qui eux même peuvent faire appel à d'autres "objets/classes secondaires" "o_s1, o_s2, o_s3" pour recupérer des données
voici ce que je compte faire et mes questions
3°) Dans "Princip" declarer en attribut des pointeurs sur objets "*o_p1, *o_p2, *o_p3, *o_s1, *o_s2, *o_s3" afin que mes objets n'appartiennent pas à la classe "Princip" (et donc être accessibles facilement à partir d'un autre endroit que cette classe "Princip" ?)
4°) Dans une methode de la class principal lorsque je voudrais utiliser des méthodes des 'o_p' je devrais bien faire ? :
Code:
1 2
|
o_p1->methodeObjetP_1(); |
5°) à présent je veux modifier des attribut de l'objet1 et pour cela j'ai besoin d'attributs des objets secondaire "o_s2 oS_3", je dois donc faire comme ceci pour appeler la méthode:
Code:
1 2
|
o_p1->methodeModifAttributObjetP_1(&o_s2,&oS_3); |
avec ce prototype ?:
Code:
1 2
|
methodeModifAttributObjetP_1(o_s2*,oS_3*); |
ainsi dans la methode je pourrais obtenir des attribut des objets "o_s2 oS_3" en faisant ? :
Code:
1 2 3
|
*o_s2->get_attribut1();
*o_s3->get_attribut9(); |
6°) si je veux qu'une methode d'une classe me renvoi un double il faut que je fasse ceci ? :
Code:
1 2
|
double mondouble=*o_p2->returnNombre(); |
Dernier chose à propos de la "declaration" des objets
au depart de mon code (dans le main) je vais mettre une fonction qui compte le nombre de systemes que je dois étudier et en fonction de ceci je devrais générer "n" objets et faire des calculs similaires sur les "n" objets.
7°) pour la déclaration de mes objets de la classe principale je devrais donc faire un vecteur de pointeurs d'objets (dans le constructeur) comme ceci?:
Code:
1 2 3 4 5
|
for (int n=0;n<nbSystemes;n++
{
monVectorObjet.push_back(new *objetSystemeIndiceN);
} |
et dans le destructeur ? :
Code:
1 2 3 4 5
|
for (int n=0;n<nbSystemes;n++
{
delete monVectorObjet[n];
} |
8°) si je veux copier les caractéristiques de tous les objets du vecteur dans des objets d'un autre vecteur (de meme taille) il faudra que je fasse ? :
Code:
1 2
|
monvectorObjet1=monVectorObjet2; |
j'espere que vous pourrez me repondre à toutes ces questions car je ne suis pas certains d'avoir tous saisi et je ne peux pas actuellement essayer. Je vous remercie d'avance pour votre aide
EDIT:
pour la 7°) il faut que je mets ceci dans le .h
Code:
1 2
|
vector<MaClass*> nomVector; |