Template Verhalten über mehrere Klassen...
-
habe mehre klassen welche mit Berchungen vornehmen bzw. Ergebnisse der Berechungen speichern etc. Diese Berchungen bzw. die Daten sind Ganzzahlig (long).. nun will ich aber auch die möglichkeite haben präsziser zu rechnen(double).
Nun Hab ich mir überlegt so ein art Globales Template zu machen,
welche einmal long oder auch double sein kann..geht das irgendwie?
-
Du kannst jede deiner Klassen als eigenständiges Template anlegen und bei Wechselwirkungen halt auf die selbe Spezialisierung der anderen Klasse zugreifen (sprich: rechner<T> verwendet einen speicher<T> als Ausgabemedium etc).
-
Hallo
Klar geht das.
#include <iostream> template<typename T> T Calc(T t1, T t2) { return t1 / t2; } int main() { std::cout << Calc(4, 3) << std::endl; std::cout << Calc(4.0, 3.0) << std::endl; }/Edit : Das kannst du beliebig aufbauen, je nachdem ob du einzelne Klassenmethoden oder ganze Klassen zu Templates machen willst.
bis bald
akari
-
@akari: Ja das ist schonmal nett für deine Hilfe.. aber das problem ist nun das ich das T als allgeimen Platzhalte über mehre klasse nvernwenden will... soviel ich weis muss für jede /über klasse eine neues "
template<typename T>"deklariert werden.
-
Hallo
Ja du must für jede einzelne Klasse und Funktion die template-Deklaration hinschreiben. Nur Klassen in Klassen können die template-Deklaration von ihrer Hauptklasse übernehmen.
bis bald
akari
-
ok d.h. bei der vernwudn der entsprechendne klassen muss ich dann ungefähr so vorgehen:
#define TYP double //oder #define TYP long CData<TYP> Daten; CCalcClass<TXP> Calc; Calc.blabalba(Daten);etc...
-
Hallo
Ich würde statt dem define ein typedef empfehlen, aber ja das wäre dann die Anwendung.
bis bald
akari
-
typedef int Number; // bzw. typedef double Numer;edit: ok ich sollt wohl öfter mal F5 drücken :p