-
Notifications
You must be signed in to change notification settings - Fork 1
/
Valeur.h
44 lines (35 loc) · 1.19 KB
/
Valeur.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
#ifndef VALEUR_H
#define VALEUR_H
#include <string>
#include <ostream>
class Valeur {
public:
virtual int getEntier() const = 0;
virtual float getReel() const = 0;
virtual std::string getChaine() const = 0;
virtual bool isVrai() const = 0;
virtual Valeur* const operator+(const Valeur* v) const = 0;
virtual Valeur* const operator-(const Valeur* v) const = 0;
virtual Valeur* const operator*(const Valeur* v) const = 0;
virtual Valeur* const operator/(const Valeur* v) const = 0;
virtual bool operator> (const Valeur* v) const = 0;
virtual bool operator>=(const Valeur* v) const = 0;
virtual bool operator< (const Valeur* v) const = 0;
virtual bool operator<=(const Valeur* v) const = 0;
virtual bool operator==(const Valeur* v) const = 0;
virtual bool operator!=(const Valeur* v) const = 0;
bool operator&&(Valeur* v) {
return isVrai() && v->isVrai();
}
bool operator||(Valeur* v) {
return isVrai() || v->isVrai();
}
bool operator!() {
return !isVrai();
}
};
inline std::ostream& operator<<(std::ostream& out, Valeur* v) {
out << v->getChaine();
return out;
}
#endif /* VALEUR_H */