Tableur C++  1.0
API de tableur + interprète bison en ligne de commande
RefRelativeLigne.h
1 /*
2  * RefRelativeLigne.h
3  *
4  * Created on: 2 avr. 2015
5  * Author: michel
6  */
7 
8 #ifndef REFRELATIVELIGNE_H_
9 #define REFRELATIVELIGNE_H_
10 
11 #include "Expression.h"
12 #include "Reference.h"
13 #include "Feuille.h"
14 #include "Cellule.h"
15 #include "ValVide.h"
16 #include "Ref.h"
17 
18 
19 namespace modele {
20 
21 class RefRelativeLigne: public Ref {
22 private:
23  Reference *pref;
24  int deplLigne;
25  int col;
26 public:
27  RefRelativeLigne(Reference * pr,int dl,int c):pref(pr),deplLigne(dl),col(c) {
28  // TODO Auto-generated constructor stub
29 
30  }
31 
33  Feuille *f=pref->getFeuille(); // feuille courante
34  Reference *r=new Reference(pref->getLigne()+deplLigne, col, f); // réf absolue
35  Cellule * c = f->getCellule(*r);
36  if (c == NULL)
37  return new ValVide(); // valeur nulle
38  else
39  return c->calculer();
40  }
41 
42  Reference toAbsolue(){
43  int l=pref->getLigne()+deplLigne;
44  return Reference(l,col,pref->getFeuille());
45  }
46  std::string toString(){
47  return toAbsolue().toString();
48  }
49 
51  return new RefRelativeLigne(*this);
52  }
54  pref=r;
55  }
56  ~RefRelativeLigne() {
57  // TODO Auto-generated destructor stub
58  }
59 };
60 
61 } /* namespace modele */
62 
63 #endif /* REFRELATIVELIGNE_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
Cellule * getCellule(const Reference r)
Méthode getCellule.
Definition: Feuille.cpp:28
Valeur * calculer()
Méthode virtuelle pure calculant la valeur de l'expression (arbre)
Definition: RefRelativeLigne.h:32
Expression * clone()
Clonage arborescent d'une expression.
Definition: RefRelativeLigne.h:50
Definition: Argument.cpp:10
La classe Expression représente la classe ABSTRAITE racine de la hiérachie des noeuds calculables de ...
Definition: Expression.h:25
une Cellule ne peut exister en dehors de sa feuille : lors de sa construction, elle est automatiqueme...
Definition: Cellule.h:23
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
void majRefRelatives(Reference *r)
destructeur virtuel impur : seul le destructeur de l'hérité sera appelé
Definition: RefRelativeLigne.h:53
Definition: RefRelativeLigne.h:21
La classe ValVide représente une Valeur Vide.
Definition: ValVide.h:19
std::string toString()
Méthode virtuelle pure retournant une chaîne représentant l'expression (arbre)
Definition: RefRelativeLigne.h:46