J'ai fait une classe qui crée des listes chaines, sachant que l'élément de chaque chaîne est un tableau de double.

J'aurais pu utiliser des conteneurs, mais j'ai voulu refaire moi-même ma propre classe. Je vois juste qu'il manque le destructeur.

Mais qu'en penses-vous?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
class Tableau{
private:
	double *tab;
    Tableau *prec;
 
public:
	static long nblignes;
	static Tableau* GetPrec(Tableau*); 
	void SetPrec(Tableau*); 
	Tableau(double);
	static double *GetTab(Tableau*);
	static void FilTab(Tableau*,long,double);
};
 
long Tableau::nblignes=0;
 
Tableau::Tableau(double name){
	//Constructeur
	double *Ttab=new double[Max_size+1];
	Ttab[0]=name;
	for(long i=1;i<=Max_size;i++){
		Ttab[i]=0;
	}
	this->tab=Ttab;
}
 
double* Tableau::GetTab(Tableau* rang){
	 //permet d'obtenir la ligne correspondant au rang 
     return rang->tab;
}
 
 
void Tableau::SetPrec(Tableau* rang){
	 //permet de fixer la ligne précédente
     this->prec=rang;
}
Tableau* Tableau::GetPrec(Tableau* rang){
	 //permet d'obtenir la ligne précédente
     return rang->prec;
}
void Add_line(double name,Tableau **p){
     Tableau *new_elements=new Tableau(name);//Création de la nouvelle ligne
     (*p)->nblignes++;  
     new_elements->SetPrec(*p);
     *p=new_elements;
}
 
double* Get_line(double quote,Tableau *p){
              //Cherche la ligne correspondant à la quotatio
	while(Tableau::GetTab(p)[0]!=quote){
		p=Tableau::GetPrec(p);
	}
	return Tableau::GetTab(p);
 
}
void Tableau::FilTab(Tableau *rang,long k,double value){
    //permet de remplir les cases du tableau correspondant a "rang"
	rang->tab[k]=value;
}
 
int Tab_Exists(double name,Tableau *p){
	 long i=0;double o=0;int res;
	 Tableau *q=NULL;
	 q=p;
	 while((i<p->nblignes)&&(Tableau::GetTab(q)[0]==name)){ // q=p->prec;
	     q=Tableau::GetPrec(p);
      	 i=i+1;
	 }
	 if(i<p->nblignes){
           res=1;}
	 else
	 {res=0;}
     return res;
}
 double View(Tableau *p)
 {       double *u=Tableau::GetTab(p);
         return u[0];
 }
J'ai d'ailleurs une question. Je comprends ce que sont les mots cléfs statique pour des variables, mais a quoi servent ils pour des fonctions?