Τι είναι οι διεπαφές στη C++

Ti Einai Oi Diepaphes Ste C



Οι διεπαφές, κοινώς γνωστές ως αφηρημένες κλάσεις, είναι απλώς μια πηγή περιγραφής της συμπεριφοράς της τάξης χωρίς να έχουν δεσμευτεί για την υλοποίηση της κλάσης. Δεν υπάρχει ενσωματωμένη ιδέα διεπαφών στον προγραμματισμό C++. Για να ξεκινήσουμε τη δημιουργία μιας διεπαφής, πρέπει πρώτα να δημιουργήσουμε μια αφηρημένη κλάση μόνο με καθαρές εικονικές συναρτήσεις.

Οι διεπαφές στη C++ εφαρμόζονται χρησιμοποιώντας αφηρημένες κλάσεις. Από την άλλη πλευρά, μια κλάση ονομάζεται αφηρημένη κλάση εάν τουλάχιστον μία συνάρτηση μέσα σε μια κλάση δηλώνεται ως καθαρή εικονική συνάρτηση.

Τι είναι η καθαρή εικονική συνάρτηση

ο Καθαρή εικονική λειτουργία σημαίνει ότι οι χρήστες απλώς δηλώνουν τη συνάρτηση και όχι τον ορισμό της. Η παράκαμψη μεθόδου/συνάρτησης χρησιμοποιείται για την υλοποίηση καθαρών εικονικών μεθόδων στην παραγόμενη κλάση. Μια συνάρτηση θεωρείται καθαρά εικονική εάν περιγράφεται μέσα στην κλάση όπως δίνεται παρακάτω:







Εδώ είναι η σύνταξη του α Καθαρή εικονική λειτουργία της Αίθουσας Τάξης.



τάξη Δωμάτιο {
δημόσιο :
// καθαρή εικονική συνάρτηση
εικονικός διπλό Getaria ( ) = 0 ;

ιδιωτικός :
διπλό μήκος ; // Μήκος ενός δωματίου
διπλό Πλάτος ; // Πλάτος δωματίου
} ;

Τι είναι η αφηρημένη τάξη

Μια κλάση που δημιουργήθηκε ειδικά για να χρησιμεύσει ως βασική κλάση ονομάζεται an αφηρημένη τάξη . Τουλάχιστον μία καθαρή εικονική συνάρτηση πρέπει να υπάρχει στην αφηρημένη κλάση. Μπορεί να περιλαμβάνει μεταβλητές και τυπικές συναρτήσεις. Οι παραγόμενες κλάσεις που έχει η αφηρημένη κλάση, θα πρέπει να εφαρμόσουν μια καθαρή εικονική συνάρτηση της βασικής κλάσης, διαφορετικά θα γίνουν αφηρημένες.



Εξετάστε το ακόλουθο παράδειγμα, στο οποίο η γονική κλάση δίνει μια διεπαφή σε μια βασική κλάση προκειμένου η βασική κλάση να εφαρμόσει μια καθαρή εικονική συνάρτηση που ονομάζεται getArea() . Δύο διαφορετικές κατηγορίες χρησιμοποιούν το ίδιο getArea() λειτουργία, αλλά η έξοδος και για τις δύο περιπτώσεις θα είναι διαφορετική.





#include
χρησιμοποιώντας χώρο ονομάτων std ;
τάξη Σχήμα
{
δημόσιο :
εικονικός ενθ Getaria ( ) = 0 ;
κενός setWidth ( ενθ wth )
{
πλάτος = wth ;
}

κενός setLength ( ενθ λθ )
{
μήκος = λθ ;
}

προστατεύονται :
ενθ πλάτος ;
ενθ μήκος ;
} ;

τάξη Ορθογώνιο παραλληλόγραμμο : δημόσιο Σχήμα
{
δημόσιο : ενθ Getaria ( )
{
ΕΠΙΣΤΡΟΦΗ ( πλάτος * μήκος ) ;
}
} ;

τάξη Τρίγωνο : δημόσιο Σχήμα
{
δημόσιο : ενθ Getaria ( )
{
ΕΠΙΣΤΡΟΦΗ ( πλάτος * μήκος ) / 2 ;
}
} ;

ενθ κύριος ( κενός )
{
Ορθογώνιο R ;
Τρίγωνο Τ ;
R. setWidth ( 9 ) ;
R. setLength ( 5 ) ;
cout << 'Περιοχή ορθογωνίου:' << R. Γεταρία ( ) << endl ;
Τ. setWidth ( 9 ) ;
Τ. setLength ( 5 ) ;
cout << 'Περιοχή Τριγώνου:' << Τ. Getaria ( ) << endl ;
ΕΠΙΣΤΡΟΦΗ 0 ;
}

Παραγωγή



Σημασία των διεπαφών

Οποιαδήποτε κλάση προέρχεται από μια καθαρή αφηρημένη κλάση (Διασύνδεση) θα πρέπει πάντα να υλοποιεί καθεμία από τις μεθόδους της βασικής κλάσης, δηλ. Διασύνδεση. Οι δείκτες διεπαφής θα μπορούσαν να περάσουν στις συναρτήσεις καθώς και στις κλάσεις, επιτρέποντάς μας να καλέσουμε τις συναρτήσεις της παραγόμενης κλάσης από εκεί.

Ποιοι είναι οι κανόνες για τη χρήση διεπαφών

Υπάρχουν οι ακόλουθοι κανόνες που πρέπει να ακολουθούν οι χρήστες για τη χρήση διεπαφών στη C++:

  • Δηλώστε μόνο καθαρές εικονικές συναρτήσεις.
  • Εκχωρήθηκε μόνο 0 σε καθαρές εικονικές λειτουργίες.
  • Μην δημιουργείτε τη διεπαφή κλάσεων.
  • Χρησιμοποιώντας μια αναφορά σε μια βασική αφηρημένη κλάση, μπορούμε να δημιουργήσουμε έναν δείκτη σε μια παρουσία της παραγόμενης κλάσης.

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

#include
#include
#include
χρησιμοποιώντας χώρο ονομάτων std ;

τάξη λινούξιντ
{
δημόσιο :
εικονικός συμβολοσειρά returnString ( ) = 0 ;
} ;
τάξη παιδί : δημόσιο λινούξιντ
{
δημόσιο :
συμβολοσειρά returnString ( )
{
ΕΠΙΣΤΡΟΦΗ 'Γεια Linuxhint' ;
}
} ;
ενθ κύριος ( )
{
παιδί παιδί_αντικείμενο ;
λινούξιντ * pntr ;
pntr = & παιδί_αντικείμενο ;
cout < returnString ( ) ;
ΕΠΙΣΤΡΟΦΗ 0 ;
}

Παραγωγή

συμπέρασμα

Οι διεπαφές είναι αφηρημένες κλάσεις που περιγράφουν τη συμπεριφορά της κλάσης που χρειάζεται να υλοποιηθεί η απαιτούμενη κλάση στη C++. Οι προαναφερθείσες οδηγίες είναι ζωτικής σημασίας για έναν αρχάριο να βελτιώσει τις δεξιότητές του προγραμματισμού C++ δουλεύοντας με τις διεπαφές. Θα βρείτε επίσης μερικά παραδείγματα που θα σας βοηθήσουν να μάθετε την υλοποίηση διεπαφών στη C++.