2.1 Le fichier PElement.h

Voici le fichier PElement.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
#ifndef __PELEMENT_H__
#define __PELEMENT_H__

#include <iostream>

///@brief classe qui décrit un élément d'une PList
template <class T>
class PElement{
	public:
		PElement();
		PElement(PElement<T>* prev, PElement<T>* next);
		PElement(PElement<T>* prev, PElement<T>* next, const T & data);
		virtual ~PElement();
		
		///donnée du PElement
		T p_data;
		///PElement précédent
		PElement<T>* p_prev;
		///PElement suivant
		PElement<T>* p_next;
};


#include "PElement_impl.h"

#endif

Comme vous le voyez, il n'est pas très long.

Vous reconnaissez :

  • p_data : la donnée du PElement
  • p_prev : l'élément précédent du PElement
  • p_next : l'élément suivant du PElement

On met tout en public, ça évite de devoir mettre la classe PList en amie (friend) de PElement.

Et bien pourquoi on ne le fait pas alors ?

C'est parce que, si vous faites comme moi, vous n'aurez pas une PList mais 5 ou 6 autres classes avec des propriétés différentes. Et mettre une classe amie a toutes les classes comme PElement ou PIterator, à la longue, ça devient embêtant, surtout que l'on peut mettre les attributs en publique pour ne pas avoir de problème.