Eliminieren von Zeigern in Templates

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Klassen-Templates (Übersicht) - Index

Eine weitere Design-Technik ist das Einbinden von aktuellen Objekten, wodurch Zeiger unnötig werden. Da hier der Compiler die tatsächlichen Typen der Objekte kennt, kann so die Zahl der erforderlichen Aufrufe virtueller Funktionen reduziert werden. Dies ist ein großer Vorteil, wenn die virtuellen Funktionen klein genug sind, um sie als aInline-Funktionen verwenden zu können. Es ist aber schwierig, Inline-Funktionen zu verwenden, wenn sie über Zeiger aufgerufen werden, da in diesem Fall der Compiler die tatsächlichen Typen der Objekte, auf die gezeigt wird, nicht kennt.



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



Alle Funktionen in aBase können in aFilebuf definierte Funktionen direkt aufrufen, ohne dafür einen Zeiger zu benötigen. Wenn eine der in aFilebuf vorhandenen Funktionen inline verwendet werden kann, erreichen Sie eine höhere Ausführungsgeschwindigkeit, da die Templates das erlauben.