Prototype
EMemory::EMemory( void );

Le destructeur est automatiquement appelé lorsque l'objet est sur le point d'être détruit. Le destructeur libère l'espace de travail et réinitialise l'objet en appelant la fonction Free( void );.

Comme il est appelé automatiquement, il n'est pas besoin de le faire explicitement. Le programme s'en charge pour vous.

Bien que le destructeur soit appelé automatiquement, vous pouvez le faire par anticipation (mais il sera de nouveau appelé lorsque l'objet sera détruit).

Attention, le destructeur ne désalloue pas l'objet lui-même si celui-ci a été instancié dynamiquement (avec le mot clé new). Dans ce cas là vous devez le désallouer avec le mot clé delete.

 

Argument

aucun.

 

Retour

aucun.

 

Exemple

Description :

Instanciation de quatre objets EMemory (deux automatiquement et deux dynamiquement) puis observation de leur comportement.

Code :

void MyFunction( void )
  {
  EMemory eMem0; // objet EMemory instancié automatiquement
  EMemory eMem1; // objet EMemory instancié automatiquement
  EMemory *peMem2 = new EMemory; // objet EMemory instancié dynamiquement
  EMemory *peMem3 = new EMemory; // objet EMemory instancié dynamiquement
  ...
  ...
  delete peMem2; // appel du destructueur de l'objet peMem2 et suppression de celui-ci
  peMem2 = NULL;
  ...
  ...
  eMem1.~EMemory(); // appel du destructueur de l'objet eMem1 par anticipation
                    // (mais pas suppression de l'objet)
  ...
  ...
  // fin du bloc, appel automatique du destructueur de l'objet eMem0 et suppression
  // de celui-ci, puis appel automatique du destructueur de l'objet eMem1 (bien qu'il
  // ait déjà été appelé) et suppression de celui-ci.
  // L'objet peMem3 n'est pas supprimé automatiquement car il a été instancié dynamiquement,
  // il en résulte une fuite de mémoire (ENORME ERREUR)!
  // Il faut absolument ajouter la ligne de code "delete peMem3;".
  }

 

Voir aussi
EMemory::EMemory( void );
EMemory::EMemory( ulonglong ullSize );
EMemory::EMemory( ulonglong ullSize, uchar ucByteToFill );
EMemory::EMemory( ulonglong ullSize, void *pBlockToFill, ulonglong ullBlockToFillSize );
EMemory::EMemory( void *pBlockToCopy, ulonglong ullBlockToCopySize );
EMemory::EMemory( EMemory &eMemory );

 

Minimum
Version 1.0.0