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 revision
Previous revision
Next revisionBoth sides next revision
cpp:constructors [2020/04/14 07:40] gthanoscpp:constructors [2020/04/14 07:44] – [Χρήση member initialization list για την αρχικοποίηση των μελών της κλάσης] gthanos
Line 71: Line 71:
 ===== Υπερφόρτωση κατασκευαστών ===== ===== Υπερφόρτωση κατασκευαστών =====
  
-Σε αναλογία με την [[cpp:functions#υπερφόρτωση_συναρτήσεων|υπερφόρτωση συναρτήσεων]] η C++ υποστηρίζει και υπερφόρτωση κατασκευαστών. Συγκεκριμένα, μπορείτε να έχετε περισσότερους από έναν κατασκευαστές αρκεί αυτοί να έχουν διαφορετικό αριθμό ή τύπο ορισμάτων. Δείτε το παρακάτω παράδειγμα της κλάση //Rectangle//, όπου δίνονται δύο επιπλέον κατασκευαστές, ένα κατασκευαστή που λαμβάνει ένα κοινό όρισμα και για τις δύο διαστάσεις του παραλληλογράμμου και ένα κατασκευαστή χωρίς ορίσματα που αναθέτει τυχαίες τιμές στις διαστάσεις του παραλληλογράμμου.+Σε αναλογία με την [[cpp:functions#υπερφόρτωση_συναρτήσεων|υπερφόρτωση συναρτήσεων]] η C++ υποστηρίζει και υπερφόρτωση κατασκευαστών. Συγκεκριμένα, μπορείτε να έχετε περισσότερους από έναν κατασκευαστές αρκεί αυτοί να έχουν διαφορετικό αριθμό ή τύπο ορισμάτων. Δείτε το παρακάτω παράδειγμα της κλάση //Rectangle//, όπου δίνονται δύο επιπλέον κατασκευαστές, ένας κατασκευαστής που λαμβάνει ένα κοινό όρισμα και για τις δύο διαστάσεις του παραλληλογράμμου δημιουργώντας ένα τετράγωνο και ένας κατασκευαστής χωρίς ορίσματα που αναθέτει τυχαίες τιμές στα μήκη των πλευρών του παραλληλογράμμου.
  
 <code cpp Rectangle.hpp> <code cpp Rectangle.hpp>
Line 91: Line 91:
     int getHeight() const;     int getHeight() const;
 }; };
 +</code>
 +
 +<code cpp Rectangle.cpp>
 +#include "Rectangle.hpp"
  
 Rectangle::Rectangle(int w, int h) { Rectangle::Rectangle(int w, int h) {
Line 131: Line 135:
 </code> </code>
  
-Αντί για την παραπάνω δήλωση θα μπορούσατε να γράψετε ισοδύναμα:+Αντί για την παραπάνω δήλωση θα μπορούσατε να γράψετε __ισοδύναμα__:
 <code cpp> <code cpp>
 Rectangle::Rectangle(int w, int h) : width(w) { Rectangle::Rectangle(int w, int h) : width(w) {
Line 137: Line 141:
 } }
 </code> </code>
-ή+ή __ισοδύναμα__
 <code cpp> <code cpp>
 Rectangle::Rectangle(int w, int h) : width(w), height(h) {} Rectangle::Rectangle(int w, int h) : width(w), height(h) {}
 </code> </code>
  
-Τελικά η κλάση Rectangle μπορεί να γραφεί ως εξής:+Ο παραπάνω τρόπος γραφής ονομάζεται στη βιβλιογραφία __member initilization list__. Τελικά η κλάση Rectangle μπορεί να γραφεί με χρήση //member initilization list// όπως παρακάτω:
  
 <code cpp Rectangle.hpp> <code cpp Rectangle.hpp>
cpp/constructors.txt · Last modified: 2021/05/07 06:11 (external edit)