farell
18-12-2002, 17:19
Hi,
ich habe zwei Klassen geschrieben um die "friend"-Möglichkeiten von C++ zu üben. Dazu übergebe ich ein Objektfeld als Parameter an eine Methode einer Klasse, die eine Auswertung der anderen Klasse vornimmt.
Das Problem ist das ich nicht genau weiss wie ich die Funktion aufrufe mit diesem ObjektArray als Parameter:
Hier ist erst einmal ein Programmauszug
(.....)
class statistik {
private:
float Abs(float x);
public:
float fGetDurchschnitt(const person aPersonen[], const int nAnzahl);
person GetMaximum(const person aPersonen[], const int nAnzahl);
person GetMinimum(const person aPersonen[], const int nAnzahl);
person GetMedian(const person aPersonen[], const int nAnzahl);
};
(.....)
int main() {
person schueler[4];
statistik stat;
int i;
schueler[0].setAll("andreas", 75.3);
schueler[1].setAll("hans", 90.3);
schueler[2].setAll("lena", 50.3);
schueler[3].setAll("frida", 33.9);
/* ?????? */
cout << endl << stat.GetMaximum(schueler, 4) << endl;
/* ?????? */
return 0;
}
Ich habe schon ausprobiert die Funktion folgendermaasen aufzurufen:
stat.GetMaximum(*schueler, 4);
stat.GetMaximum(schueler[], 4);
stat.GetMaximum(&schueler, 4);
aber irgentwie erhalte ich immer eine Fehlermeldung anlicher wie diese:
person.cpp 156: no matching function for call to `statistik::GetMaximum(person (*)[4], int)'
person.cpp 87: canidates are: class person statistik::GetMaximum(cosnt person *, int)
Ist da jetzt ein gravierender Programmtechnischer Fehler im Objekt oder rufe ich die Funktion einfach falsch auf??
Hoffe mir kann jemand helfen
Gruß andreas
ich habe zwei Klassen geschrieben um die "friend"-Möglichkeiten von C++ zu üben. Dazu übergebe ich ein Objektfeld als Parameter an eine Methode einer Klasse, die eine Auswertung der anderen Klasse vornimmt.
Das Problem ist das ich nicht genau weiss wie ich die Funktion aufrufe mit diesem ObjektArray als Parameter:
Hier ist erst einmal ein Programmauszug
(.....)
class statistik {
private:
float Abs(float x);
public:
float fGetDurchschnitt(const person aPersonen[], const int nAnzahl);
person GetMaximum(const person aPersonen[], const int nAnzahl);
person GetMinimum(const person aPersonen[], const int nAnzahl);
person GetMedian(const person aPersonen[], const int nAnzahl);
};
(.....)
int main() {
person schueler[4];
statistik stat;
int i;
schueler[0].setAll("andreas", 75.3);
schueler[1].setAll("hans", 90.3);
schueler[2].setAll("lena", 50.3);
schueler[3].setAll("frida", 33.9);
/* ?????? */
cout << endl << stat.GetMaximum(schueler, 4) << endl;
/* ?????? */
return 0;
}
Ich habe schon ausprobiert die Funktion folgendermaasen aufzurufen:
stat.GetMaximum(*schueler, 4);
stat.GetMaximum(schueler[], 4);
stat.GetMaximum(&schueler, 4);
aber irgentwie erhalte ich immer eine Fehlermeldung anlicher wie diese:
person.cpp 156: no matching function for call to `statistik::GetMaximum(person (*)[4], int)'
person.cpp 87: canidates are: class person statistik::GetMaximum(cosnt person *, int)
Ist da jetzt ein gravierender Programmtechnischer Fehler im Objekt oder rufe ich die Funktion einfach falsch auf??
Hoffe mir kann jemand helfen
Gruß andreas