[erledigt] Fehlerursache unklar

Hallo allerseits!

Ich bin die Tage dabei, eine elektronische Achse zu implementieren. Das ist ein Konstrukt, das DC-Motoren synchronisiert.

Ich gehe dabei so vor, dass ich eine Bibliothek schreibe, in der ich die Klassen „gMotor“ und „gAxis“ definiere. Wenn ich einen Testsketch kompilieren möchte, wirft mir der Compiler seltsamerweise vor:

/home/gszaktilla/sketchbook/libraries/gAxis/gAxis.cpp: In constructor 'gAxis::gAxis(gMotor, gMotor)':
/home/gszaktilla/sketchbook/libraries/gAxis/gAxis.cpp:45:44: error: no matching function for call to 'gMotor::gMotor()'
 gAxis::gAxis(gMotor motorL_, gMotor motorR_)
                                            ^

Ich kann mir das nicht erklären, weil es im Konstruktor der Achse

gAxis::gAxis(gMotor motorL_, gMotor motorR_) {...}

gar nicht darum gehen soll, Instanzen von „gMotor“ zu erzeugen, sondern welche übergeben zu bekommen. Die Headerdatei der Bibliothek habe ich hier abgelegt.

Ich gucke mir das jetzt schon zum dritten Mal im Abstand mehrerer Tage an und finde keinen Fehler. Habe ich Tomaten auf den Augen?

Vielen Dank vorweg!

Gregor

PS: Die Routine gAxis::gAxis ist total simpel:

gAxis::gAxis(gMotor motorL_, gMotor motorR_)
{
  motorL=motorL_;
  motorR=motorR_;
}

Mit deinem Kode versuchst du neue Instanzen von gMotor für die Parameter zu erzeugen, weil du Objekte übergibst, keine Referenzen von Objekten.

Versuch es mal mit

gAxis::gAxis(gMotor& motorL_, gMotor& motorR_)
{
  motorL = motorL_;
  motorR = motorR_;
}

Genauso sollten die Member mortoL und mororR Referenzen sein und nicht Objekte (wie wahrscheinlich bei dir). Hier schnappt die "ich zeige nur ein Stück meines Kodes" Falle zu, ich kann es dir also nur exemplarisch zeigen.

class gMotor;
class gAxis {
    gMotor& motorL;
    gMotor& motorR;
  public:
    gAxis(gMotor& motorL_, gMotor& motorR_) : motorL(motorL_), motorR(motorR_) {}
};

Whandall: Mit deinem Kode versuchst du neue Instanzen von gMotor für die Parameter zu erzeugen, weil du Objekte übergibst, keine Referenzen von Objekten.

Uh. Shit. In diese Falle bin ich schon einmal getreten.

Danke!

Gregor