-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAdresse.cpp
156 lines (148 loc) · 4.26 KB
/
Adresse.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
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
/**
* \file Adresse.cpp
* \brief classe adresse
* \author Maxime Pare
* \version 0.1
* \date 2014-10-11
*/
#include <sstream>
#include <iostream>
#include "Adresse.h"
using namespace std;
namespace util
{
/**
* \brief constructeur
* \param[in] p_noRue une chaine de caracteres contenant le numero de la rue.
* \param[in] p_nomRue une chaine de caracteres contenant le num de la rue.
* \param[in] p_ville une chaine de caracteres contenant le nom de la ville.
* \param[in] p_codePostal une chaine de caracteres contenant le code postal.
* \param[in] p_province une chaine de caracteres contenant la province.
*/
Adresse::Adresse(const std::string& p_noRue, const std::string& p_nomRue,const std::string& p_ville,
const std::string& p_codePostal,const std::string& p_province) :
m_noRue(p_noRue),m_nomRue(p_nomRue),m_ville(p_ville),
m_codePostal(p_codePostal),m_province(p_province)
{
}
/**
* \brief permet de modifier une adresse au complet.
* \param[in] p_noRue une chaine de caracteres contenant le numero de la rue.
* \param[in] p_nomRue une chaine de caracteres contenant le num de la rue.
* \param[in] p_ville une chaine de caracteres contenant le nom de la ville.
* \param[in] p_codePostal une chaine de caracteres contenant le code postal.
* \param[in] p_province une chaine de caracteres contenant la province.
*/
void Adresse::asgAdresse(const std::string& p_noRue, const std::string& p_nomRue,const std::string& p_ville,
const std::string& p_codePostal,const std::string& p_province)
{
asgNoRue(p_noRue);
asgNomRue(p_nomRue);
asgVille(p_ville);;
asgCodePostal(p_codePostal);
asgProvince(p_province);
}
/**
* \brief opérateur de sortie vers un flux pour l'afichage, l'écriture dans un fichier, etc.
* \param[in] p_os
* \param[in] p_adresse
* \return un flux de sortie pour les appels en cascade
*/
std::ostream& operator<<(std::ostream& p_os, const Adresse& p_adresse)
{
p_os << p_adresse.m_noRue << ", " << p_adresse.m_nomRue << ", " << p_adresse.m_ville << ", " <<
p_adresse.m_codePostal << ", " << p_adresse.m_province << endl;
return p_os;
}
/**
* \brief accesseur
* \return le code postal sous la forme d'un objet string
*/
const std::string& Adresse::reqCodePostal() const {
return m_codePostal;
}
/**
* \brief permet de modifier un code postal
* \param[in] p_codePostal
*/
void Adresse::asgCodePostal(const std::string& p_codePostal) {
m_codePostal = p_codePostal;
}
/**
* \brief accesseur
* \return le nom de la rue sous la forme d'un objet string
*/
const std::string& Adresse::reqNomRue() const {
return m_nomRue;
}
/**
* \brief permet de modifier un nom de rue
* \param[in] p_nomRue
*/
void Adresse::asgNomRue(const std::string& p_nomRue) {
m_nomRue = p_nomRue;
}
/**
* \brief accesseur
* \return le numero de la rue sous la forme d'un objet string
*/
const std::string& Adresse::reqNoRue() const {
return m_noRue;
}
/**
* \brief permet de modifier un no de rue
* \param[in] p_noRue
*/
void Adresse::asgNoRue(const std::string& p_noRue) {
m_noRue = p_noRue;
}
/**
* \brief accesseur
* \return la province sous la forme d'un objet string
*/
const std::string& Adresse::reqProvince() const {
return m_province;
}
/**
* \brief permet de modifier la province
* \param[in] p_province
*/
void Adresse::asgProvince(const std::string& p_province) {
m_province = p_province;
}
/**
* \brief accesseur
* \return la ville sous la forme d'un objet string
*/
const std::string& Adresse::reqVille() const {
return m_ville;
}
/**
* \brief permet de modifier la ville
* \param[in] p_ville
*/
void Adresse::asgVille(const std::string& p_ville) {
m_ville = p_ville;
}
/**
* \brief accesseur
* \return l'adresse complete formatee sous la forme d'un objet string
*/
std::string Adresse::reqAdresseFormate()
{
ostringstream os;
os << m_noRue << ", " << m_nomRue << ", " << m_ville << ", " << m_codePostal <<
", " << m_province << endl;
return os.str();
}
/**
* \brief Surchargeur de l'operater de comparaison pour comparer deux adresse
* \return si deux adresse sont pareille ou non
*/
bool Adresse::operator==(const Adresse& p_adresse) const
{
return (m_noRue == p_adresse.m_noRue && m_nomRue == p_adresse.m_nomRue &&
m_ville == p_adresse.m_ville && m_codePostal == p_adresse.m_codePostal &&
m_province == p_adresse.m_province);
}
} //namespace util