MIF31 - Projet 2013
 All Classes Files Functions Variables Friends
Public Member Functions | Friends | List of all members
pIntelligent< T > Class Template Reference

Public Member Functions

 pIntelligent (T *p=0)
 Consructeur par défaut. More...
 
 pIntelligent (const pIntelligent< T > &sp)
 Constructeur par copie. More...
 
 ~pIntelligent ()
 Desctucteur. More...
 
void forceDelete ()
 Procédure de nettoyage. More...
 
pIntelligent< T > & operator= (const pIntelligent< T > &sp)
 Opérateur affectation. More...
 
void * operator new (size_t sz)
 Surcharge opérateur new. More...
 
void operator delete (void *m)
 Surcharge opérateur delete. More...
 
bool operator== (const pIntelligent< T > &sp) const
 Opérateur d'égalité More...
 
T * operator-> ()
 Surcharge de l'opérateur -> More...
 
const T * operator-> () const
 Surcharge de l'opérateur -> More...
 
T & operator* ()
 Surcharge de l'opérateur *. More...
 
const T & operator* () const
 Surcharge de l'opérateur *. More...
 
const std::string toString () const
 Fonction toString. More...
 
int count () const
 Valeur du compteur. More...
 

Friends

template<typename >
class vectorPI
 
std::ostream & operator<< (std::ostream &, const pIntelligent< T > &)
 Surcharge de l'opérateur <<. More...
 

Constructor & Destructor Documentation

template<typename T>
pIntelligent< T >::pIntelligent ( T *  p = 0)
inline

Consructeur par défaut.

Constructeur par défaut de la classe template pIntelligent :

  • affecter le pointeur au pointeur intelligent
  • initialiser le compteur
  • initialiser le node et l'ajouter à vRef
Parameters
T*: pointeur vers une donnée de type T
template<typename T>
pIntelligent< T >::pIntelligent ( const pIntelligent< T > &  sp)
inline

Constructeur par copie.

Constructeur par copie de la classe template pIntelligent :

  • le pointeur prend la référence du pointeur du pointeur intelligent passé en parametre
  • décrémenter le compteur
  • si le compteur atteint 0 détruire le compteur et la donnée
  • associer le compteur du pointeur intelligent passé en paramètre au compteur de this

/param const pIntelligent<T>&

template<typename T>
pIntelligent< T >::~pIntelligent ( )
inline

Desctucteur.

Destructeur de la classe template pIntelligent :

  • décrémenter le compteur
  • si le compteur arrive à 0, détruire la donnée, le compteur et le node tout en le retirant de vRef
  • faire un check de l'ensemble des node

Member Function Documentation

template<typename T>
int pIntelligent< T >::count ( ) const
inline

Valeur du compteur.

Fonction qui retourne la valeur du compteur associé au pointeur intélligent.

Returns
int
template<typename T>
void pIntelligent< T >::forceDelete ( )
inline

Procédure de nettoyage.

Procédure permettant de nettoyer le conteneur de pointeurs intelligents.

template<typename T>
void pIntelligent< T >::operator delete ( void *  m)
inline

Surcharge opérateur delete.

Idem new(), non utilisé.

Parameters
void*
template<typename T>
void* pIntelligent< T >::operator new ( size_t  sz)
inline

Surcharge opérateur new.

Pas de gestion de plage de mémoire -> non utilisé

Parameters
size_t
Returns
void*
template<typename T>
T& pIntelligent< T >::operator* ( )
inline

Surcharge de l'opérateur *.

Returns
T&
template<typename T>
const T& pIntelligent< T >::operator* ( ) const
inline

Surcharge de l'opérateur *.

Returns
const T&
template<typename T>
T* pIntelligent< T >::operator-> ( )
inline

Surcharge de l'opérateur ->

Returns
T*
template<typename T>
const T* pIntelligent< T >::operator-> ( ) const
inline

Surcharge de l'opérateur ->

Returns
const T*
template<typename T>
pIntelligent<T>& pIntelligent< T >::operator= ( const pIntelligent< T > &  sp)
inline

Opérateur affectation.

Opérateur d'affectation de la classe template pIntelligent :

  • décrémenter le compteur
  • si le compteur arreint 0 effacer la donnée et le pointeur ainsi
  • effacer les références du node
  • associer le compteur, pointeur
  • associer le node du pointeur intelligent passé en parametre comme parent au node de this
  • incrémenter le compteur
Parameters
constpIntelligent<T>& : référence constante vers un pointeur intelligent
Returns
pIntelligent<T>
template<typename T>
bool pIntelligent< T >::operator== ( const pIntelligent< T > &  sp) const
inline

Opérateur d'égalité

Opérateur d'égalité de la classe template pIntelligent. La comparaison n'est faite que sur le pointeur de la donnée.

Parameters
constpIntelligent<T>& : référence constante vers un pointeur intélligent
Returns
bool : vrai si les pointeurs des deux pointeurs intelligents sont les mêmes, faux sinon
template<typename T>
const std::string pIntelligent< T >::toString ( ) const
inline

Fonction toString.

Fonction qui retourne une chaine de caractere contenant le nombre de références (Il serait aussi possible de retourner la chaine de caractere de la donnée du pointeur intelligent, mais il faudrait être certain que l'opérateur "<<" soit implémenté)

Returns
const std::string

Friends And Related Function Documentation

template<typename T>
std::ostream& operator<< ( std::ostream &  output,
const pIntelligent< T > &  sp 
)
friend

Surcharge de l'opérateur <<.

Fonction amie permettant de sortir le résultat de la fonction toString() dans un flux std::ostream.

Parameters
std::ostream&: flux de sortie
constpIntelligent<T>& : référence constante vers un pointeur intelligent
Returns
std::ostream&

The documentation for this class was generated from the following file: