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

C++ erwtisi


alefantos13

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

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

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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