I'm trying to implement the factory pattern in my code.
I tried to create an object "Koerper schienbein" and initialized it with
schienbein.setRadius(0.2);
schienbein.setLaenge(1.0);
schienbein.setPosition(0, 0, 1.0);
schienbein.erzeugeBody(world);
Therefore I'm assuming that there is no error within the class "Koerper".
This is my code for my factories.
Koerperfabrik.h:
class Koerperfabrik {
public:
Koerper *erzeugeKoerperteil(dWorldID welt);
protected:
virtual Koerper *erzeugeKoerper(dWorldID welt) { };
};
Koerperfabrik.cpp:
Koerper *Koerperfabrik::erzeugeKoerperteil(dWorldID welt) {
Koerper *koerper = new Koerper ();
koerper = erzeugeKoerper(welt);
return koerper;
}
Schienbeinfabrik.cpp:
Koerper *Schienbeinfabrik :: erzeugeKoerper(dWorldID welt) {
Koerper* schienbein = new Koerper ();
(*schienbein).setRadius(0.2);
(*schienbein).setLaenge(1.0);
(*schienbein).setPosition(0, 0, 1.0);
(*schienbein).erzeugeBody(welt);
return schienbein;
}
Simulation.cpp:
void erzeugeFussundSchienbein() {
Koerperfabrik schienbeinfabrik = Schienbeinfabrik ();
schienbein = schienbeinfabrik.erzeugeKoerperteil(world);
}
When I try to access (*schienbein).getBody() I get the error "Speicherzugriffsfehler (Speicherabzug geschrieben)" which translates to "Segmentation fault (core dumped)".
I hope there is somebody who can help me.
Aucun commentaire:
Enregistrer un commentaire