De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Instructie Programmeren Task 8 5JJ70. PAGE 2 Task 8: Double Linked List Het doel van deze opdracht is: Het opbouwen van een tweetal klassen, die samen.

Verwante presentaties


Presentatie over: "Instructie Programmeren Task 8 5JJ70. PAGE 2 Task 8: Double Linked List Het doel van deze opdracht is: Het opbouwen van een tweetal klassen, die samen."— Transcript van de presentatie:

1 Instructie Programmeren Task 8 5JJ70

2 PAGE 2 Task 8: Double Linked List Het doel van deze opdracht is: Het opbouwen van een tweetal klassen, die samen een linked list implementeren. De opdracht begeleid je door alle stappen die je moet nemen, probeer dus niet te veel in 1x te implementeren. Gebruik de opdracht om in kleine stapjes naar een oplossing toe te werken. Stap 1 tot 5 zijn al gedaan in het skeleton! Natuurlijk kan het geen kwaad om even te kijken hoe het in elkaar zit, voor je met stap 6 verder gaat.

3 Task 8: Double Linked List: Id counter Een variabele met het keyword static heeft de volgende eigenschappen: De variabele wordt 1x geïnitialiseerd: Als er een static variabele in een memberfunctie van een klasse voorkomt, wordt deze gedeeld door alle initializaties van de klasse. PAGE 3 void myTest(void){ static int myStatic = 0; printf("myStatic: %d\n", myStatic); myStatic++; } void main(void) { for(int i=0; i<10; i++) myTest(); }

4 Task 8: Double Linked List: Stack objecten Objecten die op de stack staan, roepen automatisch hun destructor aan wanneer hun stuk van de stack wordt opgeruimd: PAGE 4 void main(void) { MyClass myObject; MyClass* myObject2 = new MyClass; // Do stuff here // Cleanup: delete myObject2; // End of main function, implicitly calls myObject.~MyClass(), so // the destructor function is run }

5 Task 8: Double Linked List: Items itereren Door de items in je lijst lopen kan je handig doen met een do…while loop: PAGE 5 Item* ptr = _top_of_ring; if(ptr){ // If we get here, the list is not empty do { // Do stuff with you Item pointer here // Advance to next item ptr = ptr->_next; } while(ptr != _top_of_ring); }

6 Task 8: Double Linked List: Append/Insert Bedenk goed met welke verschillende situaties je rekening moet houden: Een lege lijst Een lijst met 1 of meer items Maak tekeningen, dit levert vaak veel duidelijkheid op Wanneer er maar 1 item in de lijst zit, wijzen de _next en _prev van dat item naar zichzelf! (Hint: Is het nodig om Append en Insert allebei “volledig” te implementeren?) PAGE 6

7 Task 8: Double Linked List: Delete Het deleten van een item kun je zien als het “doorknippen” van de ring bij de stippellijnen: Er zijn dus 4 pointers die je moet aanpassen Wat gebeurt er als je het _top_of_ring item weggooit? De procedure die je bij het deleten gebruikt om een item los te koppelen, is ook nuttig bij het verplaatsen van items in de ring PAGE 7

8 Task 8: Double Linked List: Inheritance De printfunctie uit de opdracht print het _id van je item vanuit de Person klasse, dat kan alleen als je van _id een protected variabele maakt: Een protected variabele kan worden benaderd vanuit de klasse zelf, en alle klassen die erven van deze klasse PAGE 8

9 Task 8: Double Linked List: Inheritance Als je de opdracht letterlijk volgt, zul je merken dat er iets niet kan: De append functie van je Dlist klasse maakt een nieuw Item object, terwijl je een Person object nodig hebt Je ontkomt er dus niet aan om iets aan te passen aan de originele Dlist klasse Maak bijvoorbeeld een versie van de append functie die een pointer naar het toe te voegen Item als argument heeft: In de append functie van je boek kun je een nieuw Person object maken (en de naam doorgeven aan de constructor van Person) Vervolgens geef je het nieuwe Person object vanuit je Book append functie door aan de append functie van Dlist Dit kan door specifiek te vragen naar de append functie van Dlist: PAGE 9 void Dlist::append(Item* newitem); void Book::append(char* name); Dlist::append(myNewPerson);


Download ppt "Instructie Programmeren Task 8 5JJ70. PAGE 2 Task 8: Double Linked List Het doel van deze opdracht is: Het opbouwen van een tweetal klassen, die samen."

Verwante presentaties


Ads door Google