typename


Das Schlüsselwort typename wird eingesetzt, um einen undefinierten Typ zu beschreiben. Es wird z.B. als Ersatz für class in einem Template (Klasse oder Funktion) eingesetzt:


Beispiel für ein Funktions-Template, das den kleineren von zwei Werten zurückgeben soll:


#include <iostream>
using namespace std;

template <typename T>
T minimum( T val1, T val2 )
{
   return ( ( val1 < val2 ) ? val1 : val2 );
}

int main()

  string a("Hans"), b("Karl");
  double c=1.2345, d=1.3456;
  cout<<minimum(a,b)<<" "<<minimum(c,d)<<endl;
}



Man kann bei Funktions-Templates anstelle des Schlüsselwortes typename auch class verwenden. Bei der Erstellung von Klassen-Templates sollte man eher class verwenden, es geht aber genau so gut typename:

template< class T >     // Template-Klasse !!!
class Wuerfel
{
  //...
  const unsigned maxrandom_;
  T zahlengenerator_;   // Template-Typ als Attribut

    //...
};

template< typename T >     // Template-Klasse !!!
class Wuerfel
{
  // wie oben

};


Übersicht Keywords C++