Βίντεο: Abstract Classes and Pure Virtual Functions in C++ (HINDI) 2024
Μια αφηρημένη κλάση στην C ++ είναι μια κλάση με μία ή περισσότερες καθαρές εικονικές λειτουργίες. Μια καθαρή εικονική συνάρτηση είναι μια λειτουργία εικονικού μέλους που χαρακτηρίζεται ως μη υλοποίηση. Το πιθανότερο είναι ότι δεν έχει εφαρμογή, επειδή δεν είναι δυνατή η υλοποίηση με τις πληροφορίες που παρέχονται στην τάξη, συμπεριλαμβανομένων τυχόν κατηγοριών βάσης.
Μια συμβατική μη-καθαρή εικονική λειτουργία είναι γνωστή ως συγκεκριμένη λειτουργία (σημειώστε ότι μια συγκεκριμένη λειτουργία μπορεί να είναι εικονική - δυστυχώς, η C ++ χρησιμοποιεί αυτόν τον όρο για να σημαίνει πολυμορφικό.
Η σύνταξη για τη δήλωση μιας καθαρής εικονικής συνάρτησης εμφανίζεται στην ακόλουθη κλάσηΛογαριασμός: // Λογαριασμός - αυτή η κλάση είναι μια κατηγορία αφηρημένης κλάσης Λογαριασμός {public: Λογαριασμός (unsigned accNo, διπλή initialBalance = 0. 0), // λειτουργίες πρόσβασης unsigned int accountNo (), double acntBalance (), static int noAccounts (), // λειτουργίες συναλλαγών άκυρη κατάθεση (διπλό ποσό) είναι μια καθαρή εικονική λειτουργία εικονική άκυρη απόσυρση (διπλό ποσό) = 0 · προστατευμένο: // διατηρεί λογαριασμούς σε μια συνδεδεμένη λίστα έτσι δεν υπάρχει όριο // στον αριθμό των λογαριασμών static int count, // αριθμός λογαριασμών unsigned accountNumber, διπλό υπόλοιπο ·}
Το = 0 μετά τη δήλωση απόσυρσης () δηλώνει ότι ο προγραμματιστής δεν σκοπεύει να ορίσει αυτή τη λειτουργία. on είναι ένα σύμβολο κράτησης θέσης για τις υποκατηγορίες. Οι υποκατηγορίες του
Λογαριασμού αναμένεται να αντικαταστήσουν αυτή τη λειτουργία με συγκεκριμένη λειτουργία. Ο προγραμματιστής πρέπει να παρέχει μια εφαρμογή για κάθε λειτουργία μέλους που δεν δηλώνεται καθαρά εικονική.
Αυτή η καταχώρηση περιέχει τη διεύθυνση της λειτουργίας. Προφανώς, τουλάχιστον μία φορά, η καταχώρηση για μια καθαρή εικονική συνάρτηση ήταν 0. Εν πάση περιπτώσει, είναι η σύνταξη με την οποία έχετε κολλήσει τώρα.
void fn () {// δηλώστε ένα λογαριασμό με 100 δολάρια Account acnt (1234, 100.00); // αυτό δεν είναι νόμιμη πράξη. απόσυρση (50); // τι θα περιμένατε} / / αυτή η κλήση να κάνετε;
Εάν επιτρεπόταν η δήλωση, το προκύπτον αντικείμενο θα ήταν ατελές, που δεν είχε κάποια δυνατότητα. Για παράδειγμα, τι πρέπει να κάνει η προηγούμενη κλήση; Θυμηθείτε, δεν υπάρχει λογαριασμός:: απόσυρση ()
. Τα αφηρημένα μαθήματα χρησιμεύουν ως κλάσεις βάσης για άλλες κατηγορίες. Ένας
Λογαριασμός περιέχει όλες τις ιδιότητες που σχετίζονται με έναν γενικό τραπεζικό λογαριασμό. Μπορείτε να δημιουργήσετε άλλους τύπους τραπεζικών λογαριασμών κληρονομώντας από τον λογαριασμό . Ο τεχνικός όρος είναι
παράσταση . Λέτε ότι η κλάση Λογαριασμός δεν μπορεί να παρουσιαστεί με ένα αντικείμενο ή ένα δεδομένο αντικείμενο παράγει την κατηγορία Savings .