Templateklasse - statische und sonstoge zugehörige Funktionen
-
Wie läuft das bei Templateklassen mit statischen oder externen Klassen (z.B. Ausgabe auf ostream, op+, Vergleiche, ...). Kann da jemand ein Beispiel geben, linken?
-
Sorry, versteh ich nicht
-
Hallo,
ich verstehe auch nicht, was du meinst. Kannst du das nochmal etwas ausfuehrlicher
Beschreiben?mfg
v R
-
sorry, statische und externe Funktionen, nicht Klassen.
-
@work schrieb:
sorry, statische und externe Funktionen, nicht Klassen.
Das funktioniert genauso, wie bei nichtstatischen Funktionen. Und externe
Template Funktionen sind ja normale Template-Funktionen (ja, hoert sich bloed an).Template-Funktion:
template<typename type> type add(const type& a, const type& b) { return a+b; }
Bei Klassen ist es auch nicht so schwer:
template<typename type> class Test { private: public: static type add(const type& a, const type& b) { return a+b; } }; //aufruf z. B. int i = Test<int>::add(2, 2);
mfg
v R
-
und externe Funktion, z.B. Ausgabe von Test auf cout?
-
@work schrieb:
und externe Funktion, z.B. Ausgabe von Test auf cout?
template<typename type> class Test { private: std::string testStr; public: Test() : testStr("Test") {} const std::string &getStr() const { return testStr; } }; template<typename type> ostream &operator<<(ostream &os, Test<type> &test) { os<<test.getStr(); return os; } //irgendwo im programm Test<int> test; std::cout<<test<<endl;
Hoffe ich hab keinen Fehler gemacht, sollte so funktionieren.
[edit]
Hatte vergessen, dass es hier um Templates geht. Das hatte ich noch nicht
gemacht, aber so muesste es eigentlich funktionieren.
[/edit]mfg
v R