000
18.03.2008, 17:23 Uhr
gipfelstuermer
|
Hallo, kann mir jemand sagen, warum das Programm nicht funiktioniert? Das ist nur ein Übungsprogramm, das ich schreiben soll ohne grösseren Hintergedanken. Soll, wenn zwei AnsiStrings übergeben worden sind abbrechen und eien -1 zurückgeben.
C++: |
template <typename t> t Div(t a, t b) { t rueckgabe;
if ( (typeid(a)==typeid(AnsiString))||(typeid(b)==typeid(AnsiString)) ) { cout <<"Division nicht möglich!!"; rueckgabe="-1"; // hier ist der Fehler // Es wird moniert, dass es nicht möglich ist // von char * nach int zu konvertieren return(rueckgabe);
}
rueckgabe=a/b; return(rueckgabe) ; }
int main(int argc, char* argv[]) { int zahl1,zahl2; AnsiString string1,string2; zahl1=6; zahl2=2; string1="test1"; string2="test2"; int er2=Div(zahl1,zahl2); return 0; }
|
Es geht mir nur, um das Verständnis. Ich kann das Programm nicht kompilieren. Wieso springt er überhaupt in die if-Klausel rein, wenn das integer Zahlen sind?? Wenn das interger oder float Zahlen sind, soll er überhaupt nicht in die if-Klausel springen. Wieso guckt denn der Compiler da nach?? Verstehe ich absolut nicht. |