User Tools

Site Tools


cpp:object_creation

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:object_creation [2019/04/19 09:14] – [Παράδειγμα αρχικοποίησης δεικτών] gthanoscpp:object_creation [2019/04/19 09:23] – [Παράδειγμα αρχικοποίησης δεικτών] gthanos
Line 210: Line 210:
 int Rectangle::getArea() { return *width_ptr * *height_ptr; } int Rectangle::getArea() { return *width_ptr * *height_ptr; }
 </code> </code>
 +
 +<WRAP tip 80% round>
 +Παρατηρήστε τον τρόπο με τον οποίο καλείται κατασκευαστής χωρίς ορίσματα από τους άλλους κατασκευαστές. Η κλήση ενός κατασκευαστή από έναν άλλο είναι δυνατή στη C++ με χρήση του ονόματος της κλάσης. Η κλήση μπορεί να γίνει είτε στο member initialization list, είτε μέσα στο σώμα του κατασκευαστή. Για παράδειγμα
 +<code cpp>
 +Rectangle::Rectangle(int w, int h) : Rectangle() {
 +  *width_ptr = w;
 +  *height_ptr = h;
 +  cout << "Calling 2 args constructor" << endl;
 +}
 +</code>
 +ή ισοδύναμα
 +<code cpp>
 +Rectangle::Rectangle(int w, int h) {
 +  Rectangle();
 +  *width_ptr = w;
 +  *height_ptr = h;
 +  cout << "Calling 2 args constructor" << endl;
 +}
 +</code>
 +</WRAP>
  
 <code cpp RectangleUsage.cpp> <code cpp RectangleUsage.cpp>
cpp/object_creation.txt · Last modified: 2021/05/07 06:22 (external edit)