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

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

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

  • 0
alefantos13

C++ erwtisi

Ερώτηση

Geia sas. thelo na rotiso kati gia polimorfismo meso enos aploy paradeigmatos. signomi an i erotisi moy einai xazi!!!

 

exoume klasi Shape kai sximata-klaseis Circle Square klp poy klironomoun ti proti.

 

otan ftixnw object, mporo na to kano me dio tropous blepo.

 

1) Circle* ptr = new Circle( orismata);

 

paei ston constructor tis Circle,blepei oti klironomei tin Shape,opote prota ektelei constructor Shape, meta Circle kai ola ok.

meta ka8e me8odo tis Circle tin prospelauno me px ptr->run()

 

2)Shape* ptr= new Circle( orismata);

 

ektelei pali ton constructor tis shape, meta tis circle (opos parapano) kai gia na prospelaso mia me8odo tis shape kanw ptr->run() kai afou exw sti shape dilosei virtual run(), paei kai kanei tin run() tou circle.

 

 

Erwtisi: Poios o logos mas didaskoun sinexeia na kanoyme virtual (kai giati na uparxei) afou me ton proto tropo ginete to idio pragma, xoris overloading, xoris mperdemata... +oti theleis na kaneis apo Shape, klironomeitai sti circle

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

1 απάντηση σε αυτή την ερώτηση

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

Μπορεί για παράδειγμα να έχεις μια συλλογή από αντικείμενα Shape (που μπορεί να είναι Circle, Triangle, Square κλπ) και να ζητάς το εμβαδόν. Αν η μέθοδος που δίνει το εμβαδόν (έστω float Surface()) είναι virtual τότε με την shape.Surface() θα κληθεί η κατάλληλη μέθοδος (Circle::Surface,Triangle::Surface,...) ανάλογα με το τι είναι το shape και θα σου δώσει το σωστό αποτέλεσμα. Αν δεν είναι θα κληθεί η μέθοδος του γονικού Shape που φυσικά δεν είναι σωστό.

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
×
×
  • Δημιουργία νέου...