Zitat:
Zitat von Shuyin
class Fraction2{
public:
private:
int ggT(int a, int b);
int minimize(void);
};
int Fraction2::ggT(int a, int b)
{
if(b==0)
return a;
else return Fraction2::ggT(int b, a % b);
}
...
|
3 Fehler fallen mir sofort auf:
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);