Bonjour,
Peut-on trouver à quelle instance d'une classe appartient un attribut dont nous disposons de la valeur et qui est unique (une sorte d'Id)?
Je m'explique: j'ai 2 classes Obj et tabObj
B]Obj[/B] est utilisée dans un attribut de tabObj sous forme de tableau dynamique de pointeur constant à Obj.
Mon souci est que je n'arrive pas à trouver comment implémenter une méthodecomme suit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part bool enConflit(int id,vector <int> tabId);
Cette méthode devra retourner true si le Obj identifié par le premier paramètre est en conflit avec un Obj de tabId identifié par le 2ème paramètre: ) ; et false s’il n’y aucun conflit ;
Cette méthode retournera false si le Obj identifié par le premier paramètre ne fait pas partie tabObj (aucun des Obj de tabObj n’a cet identificateur) ; les Obj de la sélection qui ne font pas partie de tabObj seront ignorés.
La classe Obj a sa propre méthode enConflit et qui retourne true si l'instance OBJ en cours et celle qui est passée en paramètre ont le même nom et le même lieu.
Merci pour votre aide.
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
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94 #include <iostream> #include <string> #include <vector> using namespace std; class Obj { private: int id_; string nom_; string lieu_; public: Obj(int id, const string & nom, const string & lieu) : id_(id), nom_(nom), lieu_(lieu) { } int getId() const { return id_; } const string & getNom() const { return nom_; } const string & getLieu() const { return lieu_; } bool enConflit (Obj o) { if (this->getLieu() == o.getLieu() && this->getNom() == o.getNom() ) { return true; } else { return false; } } }; class TabObj { private: vector < const Obj* > objets; public: void add_objet (Obj const & o) { objets.push_back(&o); } const vector < const Obj* > & TabObjets () const { return objets; } bool enConflit(int id,vector <int> tabId) { bool enConflit; return enConflit; } }; int main() { Obj o1(1,"Film","Paris"); Obj o2(2,"Journal", "Moscou"); Obj o3(3,"Film","Paris"); TabObj tObj; tObj.add_objet(o1); tObj.add_objet(o2); for (const Obj * obj : tObj.TabObjets()) { cout << obj->getId() << ": " << obj->getNom() << " -" << obj->getLieu() <<endl; } return 0; }
Cordialement,
IT
Partager