User Tools

Site Tools


cpp:constructors

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
cpp:constructors [2020/04/14 07:44] – [Χρήση member initialization list για την αρχικοποίηση των μελών της κλάσης] gthanoscpp:constructors [2020/04/14 07:50] gthanos
Line 146: Line 146:
 </code> </code>
  
-Ο παραπάνω τρόπος γραφής ονομάζεται στη βιβλιογραφία __member initilization list__. Τελικά η κλάση Rectangle μπορεί να γραφεί με χρήση //member initilization list// όπως παρακάτω:+Ο παραπάνω τρόπος γραφής ονομάζεται στη βιβλιογραφία __//member initilization list//__. Τελικά η κλάση Rectangle μπορεί να γραφεί με χρήση //member initilization list// όπως παρακάτω:
  
 <code cpp Rectangle.hpp> <code cpp Rectangle.hpp>
Line 166: Line 166:
     int getHeight() const;     int getHeight() const;
 }; };
 +</code>
 +
 +<code cpp Rectangle.cpp>
 +#include "Rectangle.hpp"
  
 Rectangle::Rectangle(int w, int h) : width(w), height(h) { Rectangle::Rectangle(int w, int h) : width(w), height(h) {
Line 186: Line 190:
 ===== Κλήση ενός κατασκευαστή μέσα από άλλο κατασκευαστή ===== ===== Κλήση ενός κατασκευαστή μέσα από άλλο κατασκευαστή =====
  
-Συχνά μπορεί να θέλουμε να καλέσουμε μέσα από ένα κατασκευαστή έναν άλλο κατασκευαστή. Μπορείτε να το κάνετε αυτό χρησιμοποιώντας ως οποιαδήποτε άλλη μέθοδο. Στο προηγούμενο παράδειγμα, ο κατασκευαστής με τη μία παράμετρο καλεί εσωτερικά τον κατασκευαστή με τις δύο παραμέτρους ως εξής:+Συχνά μπορεί να θέλουμε να καλέσουμε μέσα από ένα κατασκευαστή έναν άλλο κατασκευαστή. Μπορείτε να το κάνετε αυτό χρησιμοποιώντας όπως οποιαδήποτε άλλη μέθοδο. Στο προηγούμενο παράδειγμα, ο κατασκευαστής με τη μία παράμετρο καλεί εσωτερικά τον κατασκευαστή με τις δύο παραμέτρους ως εξής:
  
 <code cpp> <code cpp>
Line 194: Line 198:
 </code> </code>
  
-ίδιος κώδικας με χρήση //initialization list// μπορεί να γραφεί ως εξής:+Ο ίδιος κώδικας με χρήση //member initialization list// μπορεί να γραφεί ως εξής:
  
 <code cpp> <code cpp>
Line 203: Line 207:
 ===== Αρχικοποίηση αντικειμένων που περιέχουν πεδία που περιγράφονται από κλάσεις ===== ===== Αρχικοποίηση αντικειμένων που περιέχουν πεδία που περιγράφονται από κλάσεις =====
  
-Στην προηγούμενη ενότητα είδαμε την κλάση Cuboid που περιγράφει την κλάση του κυβοειδούς και περιέχει ένα πεδίο τύπου Rectangle. Εδώ θα δούμε πως μπορούμε να ορίσουμε ένα ή περισσότερους κατασκευαστές για τη συγκεκριμένη κλάση.+Στην προηγούμενη ενότητα είδαμε την κλάση Cuboid που περιγράφει την κλάση του κυβοειδούς και περιέχει ένα πεδίο τύπου Rectangle. Εδώ θα δούμε πως μπορούμε να ορίσουμε ένα ή περισσότερους κατασκευαστές για την κλάση του κυβοειδούς.
  
 <code cpp Cuboid.hpp> <code cpp Cuboid.hpp>
Line 251: Line 255:
 </code> </code>
  
-Οι παραπάνω δύο κατασκευαστές με χρήση member initialιzation list μπορούν να γραφούν ως εξής:+Οι παραπάνω δύο κατασκευαστές με χρήση //member initialιzation list// μπορούν να γραφούν ως εξής:
  
 <code> <code>
Line 258: Line 262:
 </code> </code>
  
-Στον πρώτο κατασκευαστή με τα δύο ορίσματα γίνεται ανάθεση του αντικειμένου //r// στο πεδίο //rect//, αντιγράφοντας την τιμή κάθε πεδίου της παραμέτρου //r// στο πεδίιο //rect//. Στον 2ο κατασκευαστή με τα τρία ορίσματα καλείται ο κατασκευαστής της κλάσης //Rectangle// με ορίσματα //(w,h)//.+Στον πρώτο κατασκευαστή με τα δύο ορίσματα γίνεται ανάθεση του αντικειμένου //r// στο πεδίο //rect//, αντιγράφοντας την τιμή κάθε πεδίου της παραμέτρου //r// στο αντίστοιχο πεδίο του //rect//. Στον δεύτερο κατασκευαστή με τα τρία ορίσματα καλείται ο κατασκευαστής της κλάσης //Rectangle// με ορίσματα //(w,h)//.
  
  
cpp/constructors.txt · Last modified: 2021/05/07 06:11 (external edit)