User Tools

Site Tools


cpp:constructors

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Next revisionBoth sides next revision
cpp:constructors [2020/04/08 10:34] – created gthanoscpp:constructors [2020/04/14 07:34] gthanos
Line 1: Line 1:
-====== Κατασκευαστές και καταστροφείς της κλάσης ======+====== Κατασκευαστές της κλάσης ======
  
-Στο προηγούμενο παράδειγμα της κλάσης //Rectangle// δεν δηλώθηκε κάποιος κατασκευαστής. Ο κατασκευαστής της κλάσης είναι μέθοδος που έχει το όνομα της κλάσης και δεν έχει επιστρεφόμενο τύπο. Ο ρόλος του κατασκευαστή της κλάσης είναι να αρχικοποιήσει τις τιμές των πεδίων της κλάσης. Σημειώστε, ότι ο κατασκευαστής της κλάσης στη C++ δεν δεσμεύει χώρο στη μνήμη, όπως συμβαίνει στη Java. Για την κλάση //Rectangle//, παρακάτω δηλώνεται ο κατασκευαστής ''Rectangle(int w, int h)''.+Στο προηγούμενο παράδειγμα της κλάσης //Rectangle// δεν δηλώθηκε κάποιος κατασκευαστής. Ο κατασκευαστής της κλάσης είναι συνάρτηση που έχει το όνομα της κλάσης και δεν έχει επιστρεφόμενο τύπο. Ο ρόλος του κατασκευαστή της κλάσης είναι να αρχικοποιήσει τις τιμές των πεδίων της κλάσης. Σημειώστε, ότι ο κατασκευαστής της κλάσης στη C++ δεν δεσμεύει χώρο στη μνήμη, όπως συμβαίνει στη Java. Για την κλάση //Rectangle//, παρακάτω δηλώνεται ο κατασκευαστής ''Rectangle(int w, int h)''.
  
 <code cpp Rectangle.hpp> <code cpp Rectangle.hpp>
Line 241: Line 241:
  
 <code> <code>
-Cuboid::Cuboid(Rectangle r, int l) : rect(r), length(l) { }+Cuboid::Cuboid(Rectangle r, int l) : rect(r), length(l) { } 
 Cuboid::Cuboid(int w, int h, int l) : rect(w,h), length(l) { } Cuboid::Cuboid(int w, int h, int l) : rect(w,h), length(l) { }
 </code> </code>
  
-Στην 1η περίπτωση γίνεται ανάθεση του αντικειμένου //r// στο πεδίο //rect//. Στην 2η περίπτωση καλείται ο κατασκευαστής της κλάσης //Rectangle// με ορίσματα //(w,h)//+Στον πρώτο κατασκευαστή με τα δύο ορίσματα γίνεται ανάθεση του αντικειμένου //r// στο πεδίο //rect//, αντιγράφοντας την τιμή κάθε πεδίου της παραμέτρου //r// στο πεδίιο //rect//. Στον 2ο κατασκευαστή με τα τρία ορίσματα καλείται ο κατασκευαστής της κλάσης //Rectangle// με ορίσματα //(w,h)//.
- +
-Η ανάθεση ''rect = r;'' δεν είναι προφανής. Έχοντας δύο αντικείμενα τύπου Rectangle το ''rect'' και το ''r'', η εντολή ανάθεσης αντιγράφει τα περιεχόμενα του ''r'' στο ''rect'' πεδίο προς πεδίο.+
  
  
cpp/constructors.txt · Last modified: 2021/05/07 06:11 (external edit)