Template-Frage
-
Hallo Community

Hier mal mein Code:#include <iostream> using namespace std; template<class T> class CSpace { T ergebnis; public: void addieren(int &wert,T wert2); void teilen(int &wert,T wert2); }; template<class T> CSpace<T>::addieren(int &wert,T wert2) { ergebnis = wert + wert2; cout << "Addition: " << ergebnis << endl; return ergebnis; } template<class T> CSpace<T>::teilen(int &wert,T wert2) { ergebnis = wert / wert2; cout << "Division: " << ergebnis << endl; return ergebnis; } int main() { CSpace<int> add; CSpace<float> div; int wert=10; float wert2 = 4.21649f; int wert3 = 5; add.addieren(wert, wert3); div.teilen(wert, wert2); return 0; }Kompiler Fehlermeldung:
1>b:\users\benutzer\documents\visual studio 2008\projects\template\template\code.cpp(19) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>b:\users\benutzer\documents\visual studio 2008\projects\template\template\code.cpp(25) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.Meine Frage: Warum wirft der Kompiler mir diese Fehlermeldung an den Kopf?
Danke schon mal im Voraus

-
Weil du "void" vergessen hast:
template<class T> [b]void[/b] CSpace<T>::addieren(int &wert,T wert2) {
-
danke

-
Ehm, das ist so nicht ganz richtig. In deiner Klasse wird zwar angegeben das void zurückgegeben werden soll, aber du gibst einen Wert des Typs Integer zurück. Also nicht void hinschreiben, sondern int.