Templates - gleiche und verschiedene Datentypen
Verfasst: 13. September 2008 13:56
Hallo,
ich habe den Datentyp in einer Klasse geändert. Aus dieser Klasse wird aber, wie noch aus einigen anderen Klassen auch, auf eine statische Methode einer weiteren Klasse zugegriffen. Daher habe ich mir gedacht, ich ersetze die statische Methode (die vorher immer nur von einem Datentyp (int) Gebrauch gemacht hat) jetzt durch ein Template.
Vorher:
Umstellung auf Template:
Nachdem ich dies Kompilieren wollte, wurde ich freundlich darauf aufmerksam gemacht, dass *a und n gefälligst denselben Datentyp zu haben haben. (Logischerweise)
Daher schnell geändert auf:
Jetzt mein Problem. Ich bekomme eine "undefined reference", sobald ich mit foobar( int *, int ) zugreife. Ich verstehe nicht wieso. Dürfen T1 und T2 jetzt nicht den selben Datentypen haben? Ich dachte, sie würden so für verschiedene Datentypen gelten, könnten aber auch den selben haben.
Gruß,
gelignite
ich habe den Datentyp in einer Klasse geändert. Aus dieser Klasse wird aber, wie noch aus einigen anderen Klassen auch, auf eine statische Methode einer weiteren Klasse zugegriffen. Daher habe ich mir gedacht, ich ersetze die statische Methode (die vorher immer nur von einem Datentyp (int) Gebrauch gemacht hat) jetzt durch ein Template.
Vorher:
Code: Alles auswählen
void foobar( int * a, int n )
{
// Implementierung
}Code: Alles auswählen
template <typename T>
void foobar( T * a, T n )
{
// Implementierung
}Daher schnell geändert auf:
Code: Alles auswählen
template <typename T1, typename T2>
void foobar( T1 * a, T2 n )
{
// Implementierung
}Gruß,
gelignite