Suppression des pointeurs dans les templates

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à Présentation des templates de classes - Index

Une autre méthode consiste à inclure les objets réels, en rendant les pointeurs inutiles. Cela permet également de réduire le nombre d'appels de fonctions virtual requis car le compilateur connaît les types réels des objets. Cette méthode présente un avantage supplémentaire si les fonctions virtual sont suffisamment courtes pour être effectivement inline. Il est difficile de mettre en ligne des fonctions virtual en les appelant avec les pointeurs car le compilateur ne connaît pas le type réel des objets pointés.



 template <class T> aBase {
     .
     .
     .
  private:
   T buffer;
 };
 class anObject : public aSubject, public aBase<aFilebuf> {
     .
     .
     .
 };



Toutes les fonctions de aBase peuvent directement appeler des fonctions définies dans aFilebuf sans passer par un pointeur. En outre, si toute fonction aFilebuf peut être mise en ligne, vous allez améliorer la vitesse d'exécution.