-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathIndividu.cpp
64 lines (54 loc) · 1.28 KB
/
Individu.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/*
Implémente les méthodes de la classe Individu
Auteur : Lopistéguy
Version : 0.1
Date : 12/08/2022
*/
#include "Individu.h"
Individu::Individu(string n, string p) : nom(n), prenom(p)
{
maVoiture = nullptr;
};
string Individu::toString()
{
return (nom + " " + prenom);
}
string Individu::toStringAndLink()
{
string resultat;
resultat = toString();
if (maVoiture != nullptr)
{
resultat += " pilote la voiture : " + maVoiture->toString();
}
return resultat;
}
void Individu::majMaVoiture(Voiture *voiture)
{
maVoiture = voiture;
}
void Individu::supprimerLien()
{
if (maVoiture != nullptr)
{
maVoiture->majMonPilote(nullptr);
maVoiture = nullptr;
}
}
void Individu::setMaVoiture(Voiture *voiture)
{
// Supprimer mon éventuel lien actuel
supprimerLien();
if (voiture != nullptr)
{ // Construire le nouveau lien
// Supprimer l'éventuel lien actuel de mon correspondant
voiture->supprimerLien();
// Etablir le lien croisé avec mon correspondant
voiture->majMonPilote(this); // Il pointe sur moi
majMaVoiture(voiture); // Je pointe sur lui
}
}
Individu::~Individu()
{
supprimerLien();
}