![]() |
Rekursion in C++ (mit einer Klasse)
Hallo Leute
Ich würde gerne eine Rekursion in C++ realisieren aber weiß nicht, wie der Aufruf lautet. Ich habe hier folgende Sachen: Die Klasse "Fraction2" (ggT steht in private.. das hat schon seine Richtigkeit da ich noch eine Vererbung habe.. hab aber jetzt ein bissl umgeändert) class Fraction2{ public: private: int ggT(int a, int b); int minimize(void); }; und ich würde gerne den größten gemeinsamen Teiler herausfinden und habe auf Wiki schon den Algorithmus herausgefunden. soviel habe ich: int Fraction2::ggT(int a, int b) { if(b==0) return a; else return Fraction2::ggT(int b, a % b); } nur meckert er bei meiner else abzweigung. int (Error: Der Typname ist nicht zulässig) b (Error: Zu wenig Argumente im Funktionsaufruf) wie kann man denn jetzt Fraction2 nochmal aufrufen?? In C weiß ich wie es geht.. Danke für die Hilfe =) |
Schau dir noch mal genau deinen Aufruf von ggT(int, int) im else-Zweig an ...
Bei if schreibst du ja auch nicht "if(int b == 0)" warum also bei ggT(int, int) ? |
Zitat:
1.) else return Fraction2::ggT(int b, a % b); Hier ist das "int" zuviel. Du willst doch den "b"-Wert übergeben und nicht definieren, was auch nicht geht beim Funktionsaufruf. 2.) else return Fraction2::ggT(int b, a % b); Du ruft die Funktion "ggT" als statisch Funktion auf, obwohl sie nicht als static definiert wurde. 3.) In der Kassendefinition (Header-File) wurde keine PUBLIC-Methode angegen, sonden auschlüßlich PRIVATE-Funtionen, die von außen nicht aufrufbar sind. Sollte dann in etwas so aussehen (Als Inline-Funktion): class Fraction2{ public: int ggT(int a, int b) { if(b==0) { return a; } else { return ggT(b, a % b); } } }; Test mit: Fraction2 fr2; int ggt=fr2.ggt(10,2); |
jo hab mein fehler entdeckt ;-)
hab aber auch noch eine andere Methode gefunden.. int Fraction2::ggT(int a, int b) { int h; while(b!=0) { h=a%b; a=b; b=h; } } nur hatte es mich genervt, nicht zu wissen wie man eine Rekursion in c++ benutzt. Danke leute =) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:30 Uhr. |
Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.