000
05.10.2007, 14:18 Uhr
~gusto
Gast
|
Hallo,
Ich würde gerne folgenden Code so "vereinfachen", dass das switch statement entfällt. Nun bin ich mir nicht sicher ob es überhaupt geht - evtl. irgendwie über virtuelle Funktionen oder so?
C++: |
Matrix<double> *A_REAL = NULL; Matrix<COMPLEX> *A_COMPLEX = NULL; switch(o_rm.Get_Type(file)) { case real: { std::cout << "\t Input is REAL!" << std::endl;
o_rm.Read_Matrix(file, &A_REAL); // Mache was mit A_REAL; delete A_REAL; break; } case complex: { std::cout << "\tInput is COMPLEX" << std::endl; o_rm.Read_Matrix(file, &A_COMPLEX); // mache was mit A_COMPLEX
delete A_COMPLEX; break; }
|
In Read_Matrix gibt es Template-Spezifikationen, die unterschiedlich vom Template, die Matrix unterschiedlich aufbauen. Braucht ihr noch mehr Informationen? Ich kann also erst zur Laufzeit entscheiden welches Template benutzt wird... Das ganze läuft in meiner main(), also in keiner Template Klasse
Könnte das irgendwie über virtuelle Methoden bzw. das Template Method Pattern gehen? |