Tableur C++  1.0
API de tableur + interprète bison en ligne de commande
Reference.h
1 /*
2  * Reference.h
3  *
4  * Created on: 26 mars 2015
5  * Author: michel
6  */
7 
8 #ifndef REFERENCE_H_
9 #define REFERENCE_H_
10 
11 #include "Expression.h" // Reference héritant de Expression, il faut sa définition complète et non une forward déclar
12 //#include "Feuille.h"
13 #include "Cellule.h"
14 #include "Ref.h"
15 
16 namespace modele {
17 //class Expression;
18 class Feuille;
19 class Valeur;
24 class Reference: public Ref {
25 
26 protected:
27  int ligne; // comprise entre 1..n
28  int colonne; // comprise entre 1..n
29  Feuille * feuille; // référence à la feuille
30 
31 public:
32 
34  static const int MAXLIGNE = 16384; // idem Excel !
36  static const int MAXCOLONNE = 230; // idem Excel !
37 
44  Reference(int lig, int col, Feuille * f);
45 
46 // /** Constructeur créant une Reference par défaut.
47 // * @param f la feuille
48 // * @exception Exception si les indices dépassent !
49 // */
50 // Reference():feuille(), ligne(1), colonne(1) {}
51 
53 
57  bool const operator<(const Reference & d) const;
58 
59  std::string toString();
60 
61  virtual ~Reference() {}
62 
63  Feuille* getFeuille() const {
64  return feuille;
65  }
66 
67  void setFeuille(Feuille* feuille) {
68  this->feuille = feuille;
69  }
70 
71  int getColonne() const {
72  return colonne;
73  }
74 
75  int getLigne() const {
76  return ligne;
77  }
81  Cellule* getCellule() const ;
82 
84  return new Reference(*this);
85  }
86  Reference toAbsolue() {
87  return *this;
88  }
89 
90  void setColonne(int colonne) {
91  this->colonne = colonne;
92  }
93 
94  void setLigne(int ligne) {
95  this->ligne = ligne;
96  }
97  bool operator!=(const Reference& d) {
98  return feuille!=d.feuille || ligne!=d.ligne || colonne!=d.colonne;
99  }
100 };
101 
102 } /* namespace modele */
103 
104 #endif /* REFERENCE_H_ */
La classe abstraite Valeur représente une valeur parmi : ValErreur, ValDouble, ValChaine, ValVide.
Definition: Valeur.h:19
Classe abstraite parent de Reference (absolue), RefRelative, RefRelativeLigne, RefRelativeCol.
Definition: Ref.h:18
Référence absolue de cellule définie par un numéro de ligne [1..16384], un numéro de colonne [1...
Definition: Reference.h:24
Definition: Argument.cpp:10
Expression * clone()
Clonage arborescent d'une expression.
Definition: Reference.h:83
modele::Valeur * calculer()
Constructeur créant une Reference par défaut.
Definition: Reference.cpp:28
Cellule * getCellule() const
Tente d'accéder à la cellule correspondant à cette Reference.
Definition: Reference.cpp:50
La classe Expression représente la classe ABSTRAITE racine de la hiérachie des noeuds calculables de ...
Definition: Expression.h:25
La classe Feuille permet de rassembler des cellules.
Definition: Feuille.h:31
std::string toString()
Méthode virtuelle pure retournant une chaîne représentant l'expression (arbre)
Definition: Reference.cpp:54
bool const operator<(const Reference &d) const
Opérateur de comparaison de deux références.
Definition: Reference.cpp:36
Reference(int lig, int col, Feuille *f)
Constructeur créant une Reference.
Definition: Reference.cpp:18
static const int MAXLIGNE
numéro maxi de ligne (mini=1)
Definition: Reference.h:34
static const int MAXCOLONNE
numéro maxi de colonne (mini=1)
Definition: Reference.h:36