-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathArc.h
executable file
·90 lines (72 loc) · 3.41 KB
/
Arc.h
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
/*************************************************************************
Arc
-------------------
debut : 2019-01-16
copyright : (C) 2018 par K. BOUZID et P-Y. GENEST
e-mail : kenza.bouzid@insa-lyon.fr
pierre-yves.genest@insa-lyon.fr
*************************************************************************/
//---------- Interface de la classe <Arc> (fichier Arc.h) ----------------
#if ! defined ( Arc_H )
#define Arc_H
//--------------------------------------------------- Interfaces utilisées
#include <cstring>
//------------------------------------------------------------------------
// Role de la classe <Arc>
// Implémente le bout de l'arc refer et cardinalité
// Cette classe peut être utilisée pour représenter un bout d'arc (referer-card)
// ainsi qu'un bout (cible-referer)
//------------------------------------------------------------------------
class Arc
{
//----------------------------------------------------------------- PUBLIC
public:
friend class GestionLog;
// la Classe GestionLog pourra accéder aux attributs de la classe courante
//------------------------------------------------- Surcharge d'opérateurs
Arc & operator = ( const Arc & unArc );
// Mode d'emploi : Surcharge de l'opérateur = de la classe Arc
// Contrat : Aucun contrat
bool operator < ( const Arc & unArc ) const;
// Mode d'emploi : Surcharge de l'opérateur < de la classe Arc
// Contrat : Aucun contrat
void Afficher ( const string s = "" ) const;
// Mode d'emploi : permet d'afficher un bout d'arc.
// Dans ce contexte, l'affichage est personnalisé pour un type d'arc
// (cible-card)
// s : chaine de caract permettant d'ajuter une spécification d'affichage
// si besoin. Elle est égale à la chaine vide par défaut
// Contrat : Aucun contrat
//-------------------------------------------- Constructeurs - destructeur
Arc ( const Arc & unArc );
// Mode d'emploi (constructeur de copie) : permet la création d'une instance
// d'arc par copie. On aurait pu s'en passer car contexte statique,
// le compilateur peut fournir le bon constructeur de copie à notre place.
// Pour des raisons de respect de forme canonique d'une classe
// nous l'implémentons quand même.
// unArc: objet à partr du quel nous créons une nouvelle instance de Arc
// par copie.
// Contrat : Aucun constrat
Arc ( string unReferer = "" , unsigned int card = 0 );
// Mode d'emploi : Coonstructeur de la classe Arc
// unReferer: le referer et éventuellement une cible
// card : la cardinalité associé à l'arc
// Contrat : Aucun constrat
~Arc ( );
// Mode d'emploi : Destructeur de Arc
// Contrat : Aucun constrat
//------------------------------------------------------------------ PRIVE
protected:
//----------------------------------------------------- Méthodes protégées
static bool compare_nocase ( const string & first, const string & second );
//Mode d'emploi: permet de trier les arcs par ordre alphabétique de Referer
// dans le cas d'égalité des cardinalités
// first: le premier referer à comparer
// second : le deuxième
// retourne un booléen indiquant si first > second
// Contrat: Aucun Contrat
//----------------------------------------------------- Attributs protégés
string referer;
unsigned int cardinalite;
};
#endif // Arc_H