cpp:object_creation
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| cpp:object_creation [2020/04/08 14:30] – ρε gthanos | cpp:object_creation [Unknown date] (current) – external edit (Unknown date) 127.0.0.1 | ||
|---|---|---|---|
| Line 19: | Line 19: | ||
| void setHeight(int h); | void setHeight(int h); | ||
| }; | }; | ||
| + | </ | ||
| - | Rectangle:: | + | <code cpp Rectangle.cpp> |
| - | Rectangle:: | + | #include " |
| - | Rectangle:: | + | |
| + | Rectangle:: | ||
| + | std::cout << " | ||
| + | } | ||
| + | Rectangle:: | ||
| + | std::cout << " | ||
| + | } | ||
| + | Rectangle:: | ||
| + | std::cout << " | ||
| + | } | ||
| Rectangle:: | Rectangle:: | ||
| Line 32: | Line 42: | ||
| void Rectangle:: | void Rectangle:: | ||
| void Rectangle:: | void Rectangle:: | ||
| - | |||
| </ | </ | ||
| <code cpp RectangleUsage.cpp> | <code cpp RectangleUsage.cpp> | ||
| + | #include " | ||
| + | |||
| int main() { | int main() { | ||
| Rectangle rect1(3,4); | Rectangle rect1(3,4); | ||
| Line 43: | Line 54: | ||
| </ | </ | ||
| - | Ο παραπάνω κώδικας δημιουργεί 3 αντικείμενα της κλάσης // | + | Ο παραπάνω κώδικας δημιουργεί |
| <WRAP center round tip 80%> | <WRAP center round tip 80%> | ||
| Line 50: | Line 61: | ||
| Rectangle rect3(); | Rectangle rect3(); | ||
| </ | </ | ||
| - | Η χρήση παρενθέσεων δεν είναι απαραίτητη, | + | Η χρήση παρενθέσεων δεν είναι απαραίτητη, |
| </ | </ | ||
| Line 103: | Line 114: | ||
| Οι παραπάνω τρόποι είναι ισοδύναμοι εάν πρόκειται να αρχικοποιήσουμε ένα μεμονομένο αντικείμενο. Στην περίπτωση που θέλουμε να αρχικοποιήσουμε πίνακες από αντικείμενα, | Οι παραπάνω τρόποι είναι ισοδύναμοι εάν πρόκειται να αρχικοποιήσουμε ένα μεμονομένο αντικείμενο. Στην περίπτωση που θέλουμε να αρχικοποιήσουμε πίνακες από αντικείμενα, | ||
| - | ===== Δημίουργία αντικείμένων στο | + | ===== Δημιουργία αντικειμένων |
| Τα παραδείγματα που είδαμε μέχρι τώρα δημιουργούν αντικείμενα μέσα στο //stack// της διεργασίας. Εάν θέλουμε να δημιουργήσουμε αντικείμενα τα οποία είναι αποθηκευμένα στο //heap//, δηλαδή δεσμεύεται δυναμικά μνήμη για αυτά, θα πρέπει να το κάνουμε μέσω του τελεστή [[cpp: | Τα παραδείγματα που είδαμε μέχρι τώρα δημιουργούν αντικείμενα μέσα στο //stack// της διεργασίας. Εάν θέλουμε να δημιουργήσουμε αντικείμενα τα οποία είναι αποθηκευμένα στο //heap//, δηλαδή δεσμεύεται δυναμικά μνήμη για αυτά, θα πρέπει να το κάνουμε μέσω του τελεστή [[cpp: | ||
| - | <code cpp RectangleInitialization.cpp> | + | <code cpp RectangleInHeap.cpp> |
| + | #include " | ||
| int main () { | int main () { | ||
| Rectangle *rect; | Rectangle *rect; | ||
| Line 122: | Line 135: | ||
| </ | </ | ||
| - | Όταν ολοκληρωθεί ο κύκλος ζωής του αντικειμένου θα πρέπει να διαγραφεί το αντικείμενο μέσω του τελεστή //delete//. Η χρήση του τελεστή //delete// καλεί πριν την καταστροφή του αντικειμένου τον καταστροφέα της κλάσης. | + | Όταν ολοκληρωθεί ο κύκλος ζωής του αντικειμένου θα πρέπει να διαγραφεί το αντικείμενο μέσω του τελεστή //delete//. Η χρήση του τελεστή //delete// καλεί πριν την καταστροφή του αντικειμένου τον καταστροφέα της κλάσης. Κατεβάστε και μεταγλωττίστε τον παραπάνω κώδικα για να δείτε τα μηνύματα που εκτυπώνονται. |
cpp/object_creation.1586356242.txt.gz · Last modified: 2020/04/08 13:30 (external edit)
