C++ Templates

Die Arbeit mit C++ Templates. Die Vorteile von Templates, wie man Templates definiert und richtig in ein C++ Programm einfügt



In diesem Code wird eine Klasse angelegt, welche durch das Template zwei Schablonenparameter (tDatatype und tDatatype2) übergeben werden.

Jede Stelle im Code für die wir nun tDatatype oder tDatatype2 einsetzen, setzen wir in Wirklichkeit den zuvor definierten Datentypen ein.

// TemplateTest.h
 
#ifndef TEMPLATE_TEST_H
#define TEMPLATE_TEST_H
 
 
template <class tDatatype, class tDatatype2>
class TemplateTest
{
public:
TemplateTest ( ); // Konstruktor
~TemplateTest ( ); // Destruktor
 
void set( tDatatype x ) {value = x;}
tDatatype get() {return value;}
 
 
private:
tDatatype value;
 
};
 
 
#endif
 
In diesem Codeteil werden durch typedef die zwei Platzhalter schablone1 und schablone2 definiert

Alle durch typedef definierten Anweisungen sind danach Synonyme für den entsprechenden Datentypen.

schablone1 ist somit ein Synonym für ein string-Datentyp
schablone2 ist nun ein Synonym für ein int-Datentyp
int main ( )
{
typedef string schablone1;
typedef int schablone2;
 
 
TemplateTest* aTemplateTest = new TemplateTest<schablone1, schablone2>();
 
return 0;
}
Möchten wir nun eine Methode mit einem Template verwenden so muss die entsprechende Methode wie folgt erstellt werden.
// TemplateTest.cpp
 
template <class tDatatype, class tDatatype2>
tDatatype TemplateTest<tDatatype, tDatatype2>::get()
{
return value;
}