This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
|
cpp:polymorphism [2017/04/25 12:41] gthanos [Pure Virtual συναρτήσεις και abstract κλάσεις] |
cpp:polymorphism [2017/04/25 12:55] gthanos [Pure Virtual συναρτήσεις και abstract κλάσεις] |
||
|---|---|---|---|
| Line 5: | Line 5: | ||
| <code cpp ShapeUsage.cpp> | <code cpp ShapeUsage.cpp> | ||
| #include " | #include " | ||
| - | #include " | ||
| int main() { | int main() { | ||
| Line 56: | Line 55: | ||
| </ | </ | ||
| - | ====== Pure Virtual | + | ====== Pure virtual |
| Εκτός από τις //virtual// μεθόδους που είδαμε προηγούμενα μπορούμε να έχουμε και //pure virtual// μεθόδους. Οι μέθοδοι που χαρακτηρίζονται //pure virtual// όταν ορίζονται σε μία κλάση, δηλώνεται μόνο το // | Εκτός από τις //virtual// μεθόδους που είδαμε προηγούμενα μπορούμε να έχουμε και //pure virtual// μεθόδους. Οι μέθοδοι που χαρακτηρίζονται //pure virtual// όταν ορίζονται σε μία κλάση, δηλώνεται μόνο το // | ||
| Line 62: | Line 61: | ||
| virtual <return type> < | virtual <return type> < | ||
| </ | </ | ||
| + | |||
| + | Η κλάση που περιέχει μία ή περισσότερες //pure virtual// συναρτήσεις είναι // | ||
| + | |||
| Για παράδειγμα, | Για παράδειγμα, | ||
| Line 104: | Line 106: | ||
| </ | </ | ||
| + | Αντίστοιχα, | ||
| + | <code cpp> | ||
| + | unsigned int Rectangle:: | ||
| + | return width * height; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Επειδή η κλάση //Shape2D// είναι πλέον // | ||
| + | <code cpp ShapeUsage.cpp> | ||
| + | #include " | ||
| + | |||
| + | int main() { | ||
| + | Rectangle rectangle(0xffffff, | ||
| + | Shape2D & | ||
| + | |||
| + | cout << " | ||
| + | cout << " | ||
| + | cout << " | ||
| + | } | ||
| + | </ | ||