PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Objekt-Array als Parameter an eine Funktion in C++??



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

tuxipuxi
18-12-2002, 17:48
probier mal :

stat.getMaximum( &schueler,4 ) und aender die klassenfunktion so um, das sie zeiger auf aPerson uebernimmt.

anda_skoa
18-12-2002, 22:26
Oder benutze eine Standardcontainer, wie zb vector:
http://www.cppreference.com/

Ciao,
_

farell
20-12-2002, 17:02
Ohhhhhhh,

hab meinen wirklich dummen, dummen Fehler gefunden.
Die Methoden haben einen Rückgabewert vom Typ person, und in main() wollte ich sie mit cout ausgeben.

schön dumm na ja
danke trozdem


Gruß andreas