Bonjour,
Je sais pas si le titre est tres clair, mais je vais essayer d'expliquer mon problème.
Je débute en c++ et donc j'ai par exemple deux classes "x" et "y".
à partir de la classe "y" je souhaite recuperer un objet "x".
Je vousmet dans un permier temps le code que j'ai déjà fait
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 #ifndef USER_H #define USER_H #include <iostream> #include <string> using namespace std; class user { public: user::user(); user::~user(); string getNom(); void setNom(string value); protected: string nom; }; #endif
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #include "../header/user.h" std::string user::getNom() { return this->nom; } void user::setNom(std::string value) { this->nom = value; } user::user(){ std::cout<<"appels de User.constructeur"<<std::endl; } user::~user(){ std::cout<<"appels de user.destructeur"<<std::endl; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 #ifndef SALAIRE_H #define SALAIRE_H #include <iostream> #include <string> #include "user.h" using namespace std; class salaire { public : void setSalaire(float value); float getSalaire(); void setUser(user value); user getUser(); private : float _salaire; user personne; }; #endifVoilà donc mes deux classes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #include "../header/salaire.h" void salaire::setSalaire(float value) { this->_salaire = value; } float salaire::getSalaire(){ return this->_salaire; } void salaire::setUser(user value) { this->personne = value; } user salaire::getUser(){ return this->personne; }
Si j'ai bien compris dans la classe salaire la variable :
user personne;
sera instancié dès la construction de la classe salaire.
Si je souhaitais instancier cet objet plus tard il faudrait le déclarer :
user *personne;
Et donc à l'endroit ou je souhaiterais l'instancier faire un :
personne = new user();
Si j'ai bon pour cà, jusque là ca va.
Mon problème est en fait :
Je souhaiterais copier l'instance d'un objet user dans ma classe salaire, mais le déclarer selon la deuxième méthode.
Et ensuite pouvoir retourer l'instance de cette copie, et là je dois dire, la syntaxe m'échappe, mais aussi, est ce bien de procéder ainsi ?
Une deuxième question en faisant un new, il faut faire un delete pour détruire l'objet, mais lorsque ce n'est pas déclarer avec un new, donc par exemple :
user personne;
Comment se passe la destruction de cet objet ? à la fin du programme ?
merci d'avance pour vos réponses, je suis pas sur d'avoir été tres clair, donc si il faut des précision, n'hésitez pas.
Partager