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:23] – [Παράδειγμα αρχικοποίησης δεικτών] gthanoscpp:object_creation [2019/04/19 09:26] – [Παράδειγμα αρχικοποίησης δεικτών] gthanos
Line 212: Line 212:
  
 <WRAP tip 80% round> <WRAP tip 80% round>
-Παρατηρήστε τον τρόπο με τον οποίο καλείται κατασκευαστής χωρίς ορίσματα από τους άλλους κατασκευαστές. Η κλήση ενός κατασκευαστή από έναν άλλο είναι δυνατή στη C++ με χρήση του ονόματος της κλάσης. Η κλήση μπορεί να γίνει είτε στο member initialization list, είτε μέσα στο σώμα του κατασκευαστή. Για παράδειγμα+Παρατηρήστε τον τρόπο με τον οποίο καλείται κατασκευαστής χωρίς ορίσματα από τους άλλους κατασκευαστές. Η κλήση ενός κατασκευαστή από έναν άλλο είναι δυνατή στη C++ με χρήση του ονόματος της κλάσης. Γενικότερα, η κλήση μπορεί να γίνει είτε στο //member initialization list//, είτε μέσα στο σώμα του κατασκευαστή. Για παράδειγμα
 <code cpp> <code cpp>
 Rectangle::Rectangle(int w, int h) : Rectangle() { Rectangle::Rectangle(int w, int h) : Rectangle() {
Line 268: Line 268:
   return 0;   return 0;
 }  }
 +</code>
 +
 +Μεταγλωττίστε και εκτελέστε τον παραπάνω κώδικα. Το output θα είναι το εξής:
 +<code>
 +Calling 0 args constructor
 +Calling 2 args constructor
 +Calling 0 args constructor
 +Calling 2 args constructor
 +Calling 1 args constructor
 +Calling 0 args constructor
 +Calling 2 args constructor
 +Calling 0 args constructor
 +Calling 2 args constructor
 +Calling 1 args constructor
 +---------------
 +Calling 0 args constructor
 +Calling 2 args constructor
 +Calling 1 args constructor
 +Calling 0 args constructor
 +Calling 2 args constructor
 +---------------
 +rect' getArea: 2
 +*r1'  getArea: 2
 +*r2'  getArea: 4
 +r3[0]'s getArea: 12
 +r3[1]'s getArea: 25
 +r4[0]'s getArea: 36
 +r4[1]'s getArea: 12
 +---------------
 +Destructing rectangle (w:2, h:2)
 +Destructing rectangle (w:5, h:5)
 +Destructing rectangle (w:3, h:4)
 +---------------
 +Destructing rectangle (w:6, h:6)
 +Destructing rectangle (w:2, h:6)
 +Destructing rectangle (w:1, h:2)
 </code> </code>
  
  
cpp/object_creation.txt · Last modified: 2021/05/07 06:22 (external edit)