jtsc21 Δημοσ. 18 Δεκεμβρίου 2008 Δημοσ. 18 Δεκεμβρίου 2008 εχω τις εξης 2 ερωτησεις στη C++ 1.πoτε χρησιμοποιουμε τους copy constructors στη C++? 2.πως ακριβως χρησιμοποιειτε ο δεικτης this σε μια κλαση και ποτε τον χρειαζομαστε? thnx in advance
fromaz Δημοσ. 18 Δεκεμβρίου 2008 Δημοσ. 18 Δεκεμβρίου 2008 Ο copy constructor αρχικοποιεί ένα αντικείμενο αντιγράφοντας το state (~ τις μεταβλητές) ενός άλλου αντικειμένου της ίδιας κλάσης. Καλείται όποτε το αντικείμενο είναι - όρισμα τιμής (by value) σε μια συνάρτηση - το αποτέλεσμά της (εξίσου by value), και φυσικά - όταν το αντικείμενο αντιγράφεται από τον προγραμματιστή Προσοχή, η αντιγραφή συγχέεται συχνά με την ανάθεση (assignment). Ακολουθεί ένα παράδειγμα αντιγραφής: >myClass A; myClass B = A; <-- copy Το this είναι ένας pointer σε ένα αντικείμενο της κλάσης που μπορούν να χρησιμοποιούν οι μη στατικές (δυναμικές) μέθοδοί της. Χρησιμοποιείται έμεσα (implicitly) από τον compiler ως το πρώτο όρισμα κάθε δυναμικής μεθόδου καθώς και πριν τα ονόματα μεθόδων και μεταβλητών στα οποία δεν προσδιορίζεται το αντικείμενο, και άμεσα (explicitly) από τον προγραμματιστή όποτε το χρειαστεί. Για παράδειγμα, ο assignment operator είναι της μορφής: >myClass& operator= (const myClass& rhs); Όπως φαίνεται, η συνάρτηση καλείται να επιστρέψει αναφορά (reference) στο αντικείμενο. Αυτό γίνεται γράφοντας >return *this;
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.