wie kann ich bei einer Template Funktion den typ abfangen ?!?
ich habe hier eine initialisierungsfunktion einer Matrixklasse die fuer reele und komplexe zahlen sein soll. jedoch wenn ich ein Komlexen datentyp in der Main anstatt "T" einsetzt wirft er mir logisch ein fehler raus, da der operator einer komplexen klasse =0 nicht defeniert ist! will ich folgendes machn wenn anstatt von T complex eingesetzt wird, will ich matrix[j][i]=z1; (z1 ist mit 0+0*j initialisiert) zuweisen sodass jedes element der komplexen zahl mit 0+0*j initialisiert wird. Wenn anstatt von "T" double oder int eingesetzt wird matrix[j][i]=0 zugewiesen.
wie kann ich diese entscheidung abfangen ich habe es schon mit try/catch versuch jedoch ohne erfolg.()
C++:
template <typename T> void cmatrix<T>::c_init() { int j = 0; int i = 0; complex z1;
Naja das sollte gehen wenn du eine implizite Konvertierung über einen Konstruktor machst, also z.B. Complex(double x) oder Complex(int x), dann dürfte er eigentlich keinen Fehler mehr schmeissen.
Über den Konstruktor wird das nichts, da sind die Objekte ja bereits initialisiert. Was du willst,ist den operator= überladen. Das sieht in etwa so aus: