Här är bilden från föreläsningen på hur datastrukturerna ser ut, precis före första delete-anropet:#include <iostream> #include <string> using namespace std; // -------------- Klassen "Person" --------------- class Person { private: string namn; int alder; public: Person(string namn, int alder); }; Person::Person(string namn, int alder) { this->namn = namn; this->alder = alder; } // ---------------- Klassen "Bil" ---------------- class Motor { private: double effekt; public: Motor(double effekt); }; Motor::Motor(double effekt) { this->effekt = effekt; } // --------------- Klassen "Motor" --------------- class Bil { private: string bilnr; Person* owner; Motor* motor; public: Bil(string bilnr, Person* owner, Motor* motor); ~Bil(); }; Bil::Bil(string bilnr, Person* owner, Motor* motor) { this->bilnr = bilnr; this->motor = motor; this->owner = owner; } Bil::~Bil() { delete motor; } // -------------- Funktionen "main" -------------- int main() { Person goran("Göran", 58); Person* gudrunp = new Person("Gudrun", 57); Motor m1(110.0); Motor* m2p = new Motor(120.0); Bil bil1("RFN 540", gudrunp, m2p); Bil* bil2p = new Bil("BOS 118", &goran, &m1); delete bil2p; delete m2p; delete gudrunp; }
Uppgiften går ut på att komma på vad som blir fel när programmet körs.
Förslag på hur man kan arbeta: