Einzelnen Beitrag anzeigen
Ungelesen 19.11.12, 18:53   #3
thunder_2011
Anfänger
 
Registriert seit: Dec 2011
Beiträge: 2
Bedankt: 1
thunder_2011 ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von Shuyin Beitrag anzeigen

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);
thunder_2011 ist offline   Mit Zitat antworten