User Tools

Site Tools


cpp:copy_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:copy_constructors [2017/04/20 12:46] – [Δημιουργία κατασκευαστών αντιγραφέων] gthanoscpp:copy_constructors [2017/04/20 12:50] – [Ορισμός ενός κατασκευαστή αντιγραφέα] gthanos
Line 77: Line 77:
 </code> </code>
  
-<WRAP center round tip 60%>+<WRAP center round tip 80%>
 Εάν δεν ορίσετε ένα δικό σας κατασκευαστή αντιγραφέα ο //compiler// δημιουργεί έναν από μόνος του αντιγράφοντας τα περιεχόμενα του αρχικού αντικειμένου στο νέο πεδίο προς πεδίο. Εάν δεν ορίσετε ένα δικό σας κατασκευαστή αντιγραφέα ο //compiler// δημιουργεί έναν από μόνος του αντιγράφοντας τα περιεχόμενα του αρχικού αντικειμένου στο νέο πεδίο προς πεδίο.
 </WRAP> </WRAP>
Line 91: Line 91:
 } }
 </code> </code>
 +
 +<WRAP center round tip 80%>
 +Το παραπάνω είναι λειτουργικά ισοδύναμο με το παρακάτω.
 +<code cpp CopyRectangle.cpp>
 +#include "Rectangle.cpp"
 +
 +int main() {
 +  Rectangle r1(5,6);
 +  Rectangle r2;
 +  r2 = r1;
 +}
 +</code>
 +Για τον μεταγλωττιστή όμως οι κώδικες είναι διαφορετικοί. Στην πρώτης περίπτωση καλείται ο κατασκευαστής αντιγραφέας, ενώ στη 2η περίπτωση καλείται ο //default// κατασκευαστής και στη συνέχεια γίνεται ανάθεση των πεδίων του //r1// στα πεδία του //r2//.
 +</WRAP>
  
 ==== Δημιουργία κατασκευαστών αντιγραφέων ==== ==== Δημιουργία κατασκευαστών αντιγραφέων ====
cpp/copy_constructors.txt · Last modified: 2022/05/12 19:41 by gthanos