Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Pri vytváraní tried a objektov pre program v C + + programátor sa často zistí , že rôzne triedy budú prekrývať alebo zdieľať podobnú funkčnosť . Ona potom má dve možnosti : napísať funkčný kód pre obe triedy , alebo vytvoriť " základné " triedy so všetkými spoločnými črtami a vlastnosti týchto tried . Potom , dve triedy môžu " inherentné " tie rysy , zatiaľ čo pridávanie vlastných . Napríklad , ak programátor píše " pridružená spoločnosť " a " správca " triedy pre obchodné aplikácie , by mohla vytvoriť jednotný " zamestnanca " triedu , ktorá obsahuje rovnaké funkcie a medzi spolupracovníkmi a manažérmi .
Virtuálne funkcie
základná trieda pre inú triedu môže obsahovať definície o tom , čo triedy môže urobiť . a aké informácie , ktoré obsahujú . Takže , trieda zamestnanec z príkladu môže obsahovať funkcie pre výpočet platu , ktorý obsahuje konkrétny vzorec . Manažér a pridružené triedy inherentné , že funkcia , a teda vzorec . Avšak , manažéri a spolupracovníci môžu vyžadovať iný vzorec pre výpočet platu . V tomto prípade , základná trieda by obsahovať funkciu " virtuálne " . Základná trieda bude definovať predvolené správanie , ale dieťa triedy potom môže vytvoriť svoje vlastné vzorce a funkcie v prípade potreby .
Abstraktné triedy
Vedľa virtuálne funkcie , tam sú " čisté " virtuálne funkcie . Čisto virtuálne funkcie neobsahujú definíciu funkcie . Trochu, oni jednoducho definovať názov funkcie . Tak, napríklad , funkcia výpočtu plat v základnej triedy zamestnanca by byť deklarovaný ako virtuálny bez definície . Potom , manažér a pridružené triedy by sa definovať svoje vlastné funkcie pre výpočet mzdy . Ak trieda obsahuje jednu alebo viac čisto virtuálne funkcie , sa nazýva abstraktná trieda . To je preto , že triedy s čisto virtuálne funkcie nemôže stať objekty .
C + + rozhranie
Od abstraktné triedy sa nemôže stať objekty , ktoré sú nazývané " rozhrania " . Rozhrania sú abstraktné triedy , ktoré často obsahujú len čisto virtuálne funkcie , ktoré slúžia ako vzor pre ostatné bežné triedy . Takže ak napríklad zamestnanec obsahuje len čisto virtuálne funkcie , potom programátor navrhne Manager a partnerských tried dediť od zamestnanca ako rozhranie , čo znamená , že je nutné vykonať čisté virtuálne funkcie triedy zamestnanca . Zatiaľ čo C + + podľa normy ISO neobsahuje konkrétne " rozhranie " kľúčové slovo , implementácie Microsoft C + + nemá ( Zdroj 3 ) . Tu je príklad pre ilustráciu relationship.class Employee {
public : virtual int calcSalary ( ) = 0 , //čisto virtuálne funkcie
private : int ID ; } ;
class Associate : public Employee {
public : int calcSalary ( ) { //Associate * musí * realizovať calcSalary alebo si chyby /* kód * /} } ;