Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Čo je to virtuálny deštruktor v C ?

Pretože C + + používa objektovo orientované programovanie , alebo OOP modelu , ako súčasť svojho návrhu , programátori sa musí zoznámiť s niektorými OOP pojmami , ako sú triedy a objekty . Keď programátor chce vytvoriť objekt pre použitie v kóde , musí sa navrhnúť funkčnosť objektu v " triede . " Trieda definuje dáta a funkcie , ktoré objekt môže použiť . Špecifickým typom funkcie objektu , virtuálne destruktor , pre jeho použitie vyžaduje , aby programátor pochopiť úlohu deštruktory do tried , koncept dedičnosti triedy , a používanie virtuálnych funkcií v C + + programovanie . Dedičnosť

A sily OOP spočíva v poňatí dedičnosti . Ak chce programátor rozšíriť funkčne objektu , alebo ak jeden objekt zdieľa mnoho z funkčne iného objektu , len s drobnými rozdielmi , programátor môže odvodiť jednu triedu od druhého . Keď jedna trieda je odvodená od inej triedy ( " základné " triedy ) , má prístup k premennej a funkcie sú definované v prvej triede . V tomto príklade triedy " lopta " je odvodený od triedy " gule " a rozširuje jeho funkčnosť

trieda Sphere {

verejnosti : .

Int getRadius ( ) {

vrátiť r ;

}

int r ;

}

trieda lopty : verejná sféra {

verejnosti :

string farba ;

}
Virtuálne funkcie

Vzhľadom k tomu , odvodená trieda má prístup ku všetkým funkciám základnej triedy , je možné ich použiť ako kedykoľvek , ako keby to bolo ako základnej triedy . Avšak , odvodené triedy môže namiesto toho zmeniť funkciu v základnej triede , aby vyhovovali jeho potrebám . Okrem toho , základná trieda by mohlo slúžiť ako templát pre odvodené triedy . V tomto prípade sa základné triedy pomenovať funkcie , bez toho, aby definovala , čo robia , namiesto toho opúšťať že k odvodených tried . Funkcie v základnej triede , ktorá nerobí nič , namiesto toho zanecháva odvodené triedy na jeho vykonanie , sa nazýva funkcia " virtuálne " .
Deštruktory

Integral na objekt dizajnu je implementácia " konštruktory " a " deštruktor " funkcií . Konštruktor funkcie pre triedu určuje, ako objekt vytvorený z triedy sa najprv inicializovať ( to predvolené hodnoty dát bude obsahovať , napríklad) . Destructor , naopak , určuje , čo sa stane , keď je objekt odstránený z pamäte ( ako je informácia v nej odstránené , napríklad) . Tento príklad kódu ukazuje, ako trieda najprv definuje konštruktor a deštruktor funkcie

trieda Sphere {

Sphere ( ) ; . //Konštruktor

~ Sphere ( ) ; //destruktor

}
virtuálne deštruktory

Vzhľadom k tomu, ako triedy a deštruktory pracovať , keď je odvodená trieda odstránený z pamäte , ako destruktor odvodené triedy a destruktor zo základnej triedy musí byť volaná . Na dosiahnutie tohto cieľa , programátori vytvárať virtuálne deštruktory v základnej triedy , môže , že odvodené triedy definovať . Tento príklad ukazuje základnej triedy s virtuálnou destruktor a odvodené triede s vlastným deštruktory

trieda Sphere {

Sphere ( ) ; .

Virtual ~ Sphere ( ) { } , //" virtuálne " kľúčové slovo označuje virtuálne triedu

}

trieda lopty : verejná sféra {

ples ( ) ;

~ gule ( ) : //vymazanie " gule " objekt bude volať tento destruktor a Sphere destruktor

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené