Διεπαφές σε c++

Διεπαφές σε c++

Οι αφηρημένες κλάσεις είναι ο τρόπος για να επιτευχθεί η αφαίρεση στη C++. Η αφαίρεση στη C++ είναι η διαδικασία για την απόκρυψη των εσωτερικών λεπτομερειών και την εμφάνιση μόνο λειτουργικότητας. Η αφαίρεση μπορεί να επιτευχθεί με δύο τρόπους:

  1. Αφηρημένη τάξη
  2. Διεπαφή

Η κλάση αφηρημένης και η διεπαφή και οι δύο μπορούν να έχουν αφηρημένες μεθόδους που είναι απαραίτητες για την αφαίρεση.

Γιατί χρειαζόμαστε μια αφηρημένη τάξη;

Ας το καταλάβουμε αυτό με τη βοήθεια ενός πραγματικού παραδείγματος. Ας υποθέσουμε ότι έχουμε μια τάξη, το ζώο κοιμάται, το ζώο κάνει έναν ήχο κ.λπ. Προς το παρόν, εξετάζω μόνο αυτές τις δύο συμπεριφορές και δημιουργώ μια κλάση Animal με δύο συναρτήσεις sound() και sleeping() .

Τώρα, ξέρουμε ότι οι ήχοι των ζώων είναι διαφορετικοί, η γάτα λέει "νιαούρισμα", ο σκύλος "γούφ". Τι εφαρμογή λοιπόν δίνω στο Animal κλάση για τη συνάρτηση sound() , ο μόνος και σωστός τρόπος για να γίνει αυτό θα ήταν να γίνει αυτή η συνάρτηση καθαρά αφηρημένη, έτσι ώστε να μην χρειάζεται να δώσω υλοποίηση στην κλάση Animal αλλά όλες οι κλάσεις που κληρονομούν την κλάση Animal πρέπει να δώσουν υλοποίηση σε αυτήν τη συνάρτηση. Με αυτό τον τρόπο διασφαλίζω ότι όλα τα ζώα έχουν ήχο αλλά έχουν τον μοναδικό ήχο τους.

#include <iostream>  
using namespace std;  
 class Shape    
{    
    public:   
    virtual void draw()=0;    
};    
 class Rectangle : Shape    
{    
    public:  
     void draw()    
    {    
        cout < <"drawing rectangle..." < <endl;    
    }    
};    
class Circle : Shape    
{    
    public:  
     void draw()    
    {    
        cout <<"drawing circle..." < <endl;    
    }    
};    
int main( ) {  
    Rectangle rec;  
    Circle cir;  
    rec.draw();    
    cir.draw();   
   return 0;  
}

Έξοδος:

drawing rectangle...
drawing circle...

Κανόνες αφηρημένης τάξης

  1. Όπως είδαμε ότι κάθε κλάση που έχει μια καθαρή εικονική συνάρτηση είναι μια αφηρημένη τάξη.
  2. Μπορούμε να δημιουργήσουμε δείκτη και αναφορά βασικών σημείων αφηρημένης κλάσης στην παρουσία μιας θυγατρικής κλάσης.
  3. Μια αφηρημένη κλάση μπορεί να έχει κατασκευαστές.
  4. Εάν η παράγωγη κλάση δεν υλοποιεί την καθαρή εικονική συνάρτηση της γονικής κλάσης, τότε η παραγόμενη κλάση γίνεται αφηρημένη.
Προηγουμένως:Ενθυλάκωση σε c ++Next:Κλάση φίλου και συνάρτηση φίλου στο c ++PrevHomeNext


No