Φωτογραφία Νικόλαος Πανάγος
Απάντηση: Απορίες στις σημειώσεις 4ης Ενότητας.
από Νικόλαος Πανάγος - Sunday, 12 December 2010, 9:29 PM
 
Ειρήνη τον copy constructor τον χρησιμοποιούμε στις περιπτώσεις που μπορεί να θέλουμε να δημιουργήσουμε ένα αντίγραφο ενός υπάρχοντος αντικειμένου.

Τώρα ας δούμε τι κάνουν οι constructors για να το καταλάβεις καλύτερα. Στην κλάση υπάρχει ως μεταβλητή μέλος μια αναφορά τύπου Point με όνομα center. Όταν λοιπόν καλείται ο default constructor, αυτό που κάνει η γραμμή center = new Point(); είναι να δημιουργήσει ένα νέο αντικείμενο τύπου Point και να θέσει την αναφορά αυτήν να 'δείχνει' στο αντικείμενο αυτό.

Ο δεύτερος constructor λαμβάνει δύο παραμέτρους, ένα αντικείμενο τύπου Point και έναν ακέραιο, προφανώς η πρώτη θα αντιστοιχεί στο κέντρο του κύκλου που θα δημιουργηθεί και η δεύτερη στην ακτίνα του.

Εδώ λοιπόν βλέπεις πως καλείται ο copy constructor της Point στην πρώτη γραμμή για να δημιουργήσει ένα νέο αντικείμενο τύπου Point που θα είναι αντίγραφο αυτού της παραμέτρου και στη συνέχεια θέτει την αναφορά center να 'δείχνει' στο αντικείμενο αυτό. Η δεύτερη γραμμή εκχωρεί την τιμή της παραμέτρου r στη μεταβλητή μέλος radius. Άρα λοιπόν, μόλις ολοκληρωθεί η κλήση του συγκεκριμένου constructor θα έχει δημιουργηθεί ένα αντικείμενο τύπου Circle με κέντρο που έχει τις συντεταγμένες του σημειου c και ακτίνα ίση με r.