Documente Academic
Documente Profesional
Documente Cultură
– sintaxa;
– de ce derivăm ?
• reutilizare cod sursa si cod obiect ( biblioteci de clase: MFC, OWL, FCL );
• obţinerea unei superclase fară recompilarea clasei iniţiale;
– derivarea reflectă o înrudire; modelează legături reale; Rockfort Lhotka, Business
Objects, 2008
– inheritance (is a) versus composition (has a)
– nici prin derivare, nici prin includere nu câstigăm drepturi de acces speciale;
– tipul derivării nu poate surclasa restricțiile de acces, dar poate introduce altele noi!
• protected – tot ce e accesibil devine protected
• private - tot ce e accesibil devine private
• public – lasă tot ce e accesibil cum erau; private rămâne inaccesibil
• publicizare dacă nu dorim să se aplice la tot domeniul;
– friend se moștenește, dar doar pentru zona moștenită:
public
public
Derivare
private public Inaccesibil
protected protected
(a)
private
public
Derivare
private Inaccesibil
private
protected private
(b)
protected
public
Derivare
private protected Inaccesibil
protected protected
(c)
• ordinea ord poate fi data prin referinta de obiecte MaiMic, MaiMare, MyOrd etc.
care au supraincarcat corespunzator operator()()
– anomalii la virtualizare:
• destructori virtuali (de pus virtual, pentru test)
• apel de functii virtuale in constructor
– comparator virtual (cod sursa)
Mecanismul de virtualizare:
tabela de functii virtuale
pVTable
D 0 1 2 3 4
vTable