Video: Buckys C++ Programming Tutorials - 57 - Abstract Classes and Pure virtual Functions 2024
Deoarece intelectuală satisfăcătoare este factoringul în C ++, acesta introduce o problemă proprie. Într-un exemplu despre clasele contului bancar, în special clasa de bază comună Cont. Gândiți-vă pentru un minut despre cum puteți defini diferitele funcții ale membrilor definite în Cont.
Cele mai multe funcții ale contului nu prezintă nici o problemă, deoarece ambele tipuri de cont le implementează în același mod. Implementarea acestor funcții comune cu Cont :: retragere () este diferită.
Regulile de retragere dintr-un cont de economii sunt diferite de cele pentru retragerea dintr-un cont de verificare. Va trebui să implementați Economii:: retragere () diferit de dvs. Verificare:: retragere () . Dar cum ar trebui să implementați Cont:: retragere ()?
Să-l întrebăm pe managerul băncii pentru ajutor. Conversația ar putea merge în felul următor:
"Care sunt regulile pentru retragerea dintr-un cont? " tu intrebi.
"Ce tip de cont? Economii sau verificări? "Vine răspunsul.
"De la un cont", spui tu. Doar un cont. "
Privire blanc.
Problema este că întrebarea nu are sens. Nu există un astfel de lucru ca "doar un cont. "Toate conturile (în acest exemplu) sunt fie verificarea conturilor, fie conturile de economii. Conceptul de cont este unul abstract care influențează proprietățile comune celor două clase concrete.
Este incompletă deoarece nu are retragerea de proprietate critică () .
O clasă abstractă este una care există doar în subclasele. Clasa de beton este o clasă care nu este abstractă.