C++ Refferenz auf Klasse als Variable
-
Sorry für die verquere Überschrift, aber ich kanns grad ned besser umschreiben

Folgendes Szenario.
Zwei Spieler stehen auf einer großen Wippe und versuchen diese im Gleichgewicht zu halten. Während der Simmulation wird in bestimmten Intervallen die update-Funktion der Wippe aufgerufen. Dieses Update wird dann an die beiden "Spieler" weitergeschickt, zusammen mit dem momentanen Zustand der Wippe (Auslenkung, Drehmoment, Trähgeit, etc.).
Die Spieler reagieren nun und bewegen sich.
Daraufhin frägt die Wippe die Position der beiden ab und reagiert physikalisch korrekt.
Dann kommt wieder ein Update usw.
Nun zu meinem Problem:
Wippe.hclass Wippe { public: // Konstruktor Wippe (Person& p, Motor& m, float l); // Updatefunktion. s ist das Intervall in Sekunden. void update (float s); private: Person person; // Person auf der rechten Seite Motor motor; // Motor auf der linken Seite const float laenge; // Länge in Metern float winkel; // Winkel im Bogenmaß float winkelgeschwindigkeit; // Geschwindigkeit in m/s float drehimpuls; // Drehimpuls float drehmoment; // Drehmoment float traegheit; // Trägheit // Rechenfunktionen. void rechneWinkel (); void rechneWinkelgeschwindigkeit (); void rechneDrehimpuls (); void rechneDrehmoment (); void rechneTraegheit (); }; /// Konstruktor um die Länge der Wippe festzulegen. /// /// \param laenge Länge der Wippe in Metern. inline Wippe::Wippe (Person& p, Motor& m, float l) : person(p), motor(m), laenge(l) {}Wippe.cpp
void Wippe::update (float s) { // Update mit Daten an Die Mitspieler schicken person.update(winkel, winkelgeschwindigkeit, drehimpuls, drehmoment, traegheit); motor.update(winkel, winkelgeschwindigkeit, drehimpuls, drehmoment, traegheit); // Berechnungen ausführen ... }Person.h (Motor.h analog ... Vererbung kommt noch ;))
class Person { public: // Konstruktor Person (float gew, float pos, float min, float max); // Methoden um Information auszulesen float liesGewicht() const; float liesPosition() const; // Updatefunktion. s ist das Intervall in Sekunden. void update(float s, float winkel, float winkelgeschwindigkeit, float drehimpuls, float drehmoment, float traegheit);Beim Übersetzen von Wippe.cpp bekomm ich nun folgenden Fehler:
Wippe.cpp: In member function »void Wippe::update(float)«: Wippe.cpp:13: Fehler: keine passende Funktion für Aufruf von »Person::update(float&, float&, float&, float&, float&)« Person.h:17: Anmerkung: Kandidaten sind: void Person::update(float, float, float, float, float, float) Wippe.cpp:15: Fehler: keine passende Funktion für Aufruf von »Motor::update(float&, float&, float&, float&, float&)« Motor.h:18: Anmerkung: Kandidaten sind: void Motor::update(float, float, float, float, float, float)Warum hab ich da plötzlich nen anderen Funktionskopf drin?
-
du übergibst nur 5 variablen, die funktion erwartet aber 6
mfg.
-
Steinigt mich -.-
Blind wie sonst noch was ... danke für die Schnelle Antwort