Προς το περιεχόμενο

2 ερωτησεις C++(copy constructors/δεικτης this)


jtsc21

Προτεινόμενες αναρτήσεις

Δημοσ.

εχω τις εξης 2 ερωτησεις στη C++

 

1.πoτε χρησιμοποιουμε τους copy constructors στη C++?

2.πως ακριβως χρησιμοποιειτε ο δεικτης this σε μια κλαση και ποτε τον χρειαζομαστε?

 

 

thnx in advance

Δημοσ.

Ο 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;

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...