Practicumopgaven C++ Programmeren (2CPPP1) week 4


Klassen voor Polygonen

Gegeven het onderstaande UML klassendiagram van de klassen Point, Polygon en ColorPolygon. Een Polygon-object heeft een aantal punten. Deze compositie wordt geïmplementeerd met een dynamisch gecreëerd array van Point-objecten. De coördinaten van de punten van het polygon worden als een array van paren van x- en y-coördinaten aan de constructor van Polygon aangeboden. Het attribuut nrOfPnts bevat het aantal punten van het Polygon-object. De methode move(int dx, int dy) verschuift een polygon dx in horizontale richting en dy in verticale richting. Bij de x- en y-coördinaten van alle punten wordt dus dx resp. dy opgeteld. De methode setColor (const char * cl) kan de kleur van een ColorPolygon veranderen.
Bovendien hebben beide klassen een copy-constructor, een assignment operator en friend functie die een tekstuele representatie van het object naar een ostream schrijft.

De implementatie van de klassen Point en Polygon, inclusief een testprogrammaatje vind je in het bestand Polygon.zip. De opdracht is om de implementatie van de klasse ColorPolygon te maken met een programma om de klasse te testen. Uit de test moet blijken dat de copy-constructor en assignment operator van de klasse ColorPolygon diepe kopieën opleveren. Lever alleen de zelf gemaakte code in!