Template Klasse(Funktion) einbinden

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
flinkflash
Beiträge: 17
Registriert: 01.07.2003 22:56:16

Template Klasse(Funktion) einbinden

Beitrag von flinkflash » 03.09.2003 23:15:44

Servus,

lacht mich bitte net aus aber ich seh kein Land. Ich hab ein Header File. In diesem Header File ist eine Template Funktion:

#ifndef QWT_MATH_H
#define QWT_MATH_H

template <class T>
void qwtShiftArray(T *arr, int size, int di)
{
//Mach irgendwas
}
#endif

Dieses Header File(qwt_math.h) binde ich mit #include "qwt_math.h" in eine andere Klasse ein. Was muss ich tun, um auf diese Funktion zugreifen zu könen??? Wenn ich sie einfach so aufrufe meckert der Compiler:
no matching function for call to `qwtShiftArray (long int &, const int &, int)

Er wird wahrscheinlich recht haben, aber ich komm net weiter.

cu
flinkflash

Benutzeravatar
Bert
Beiträge: 3751
Registriert: 16.07.2002 14:06:52
Wohnort: Dresden
Kontaktdaten:

Beitrag von Bert » 04.09.2003 08:23:34

Sehe ich das richtig, Du willst die Funktion mit 3 int's als Parameter aufrufen?

Bin leider nicht der Template Spezie, aber Templates sind halt nur Blueprints, der eigentliche Code wird vom Comiler erzeugt, wenn er dann weiß, welche Klasse den als der Templateparameter übergeben wird. Und ich weiß nicht (bezweifle es aber) ob Du einen int als ersten Parameter übergeben kannst. Vielleicht kannst Du ja etwas mehr verraten? Zu so einer Template-Funktion/Klasse gehört eigentlich auch immer ein Beschreibung, welchen Anforderungen die zu übergebenden Klassen genügen müßen.
Programmer: A biological machine designed to convert caffeine into code.
xmpp:bert@debianforum.de

Benutzeravatar
spiffi
Beiträge: 1128
Registriert: 09.08.2003 19:02:27

Beitrag von spiffi » 04.09.2003 09:02:56

Bert hat geschrieben:Und ich weiß nicht (bezweifle es aber) ob Du einen int als ersten Parameter übergeben kannst.
Doch, das geht. Warum sollte man auch nicht drei int-Parameter übergeben können sollen?

flinkflash. zeig doch bitte mal, wie Du die Funktion aufrufst; inklusive der Deklaration der beim Funktionsaufruf übergebenen Variablen. Dann sehen wir weiter...

Antworten