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 revision
Previous 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>
 +Για τον μεταγλωττιστή όμως οι κώδικες είναι διαφορετικοί. Στην πρώτη περίπτωση καλείται ο κατασκευαστής αντιγραφέας (//copy constructor//), ενώ στη 2η περίπτωση καλείται ο //default// κατασκευαστής και στη συνέχεια γίνεται ανάθεση των τιμών των πεδίων του //r1// στα πεδία του //r2//.
 +</WRAP>
  
 ==== Δημιουργία κατασκευαστών αντιγραφέων ==== ==== Δημιουργία κατασκευαστών αντιγραφέων ====
cpp/copy_constructors.txt · Last modified: 2022/05/12 19:41 by gthanos