#OOP - Memory Management i C++
Du allokerer med new og deallokerer med delete. Eksempler:
char *s = new char[10];
Note *note = new Note("Note 1");
delete[] s;
delete note;
I Java allokerer man også med new men man deallokerer ikke eksplicit,
da Java bruger garbage collection (den deallokerer selv når der ikke
længere er noget der bruger data).
Den store ulempe ved eksplicit delete er at hvis man glemmer det, så
kan man lave en memory leak. Og sådanne er desværre ret almindelige
i C++ programmer.
Ulempen ved garbage collection er at programmet gåt lidt i stå mens det
sker hvilket kan være meget uheldigt for real time applikationer.
NB: Man kan også bruge malloc & free fra C i C++ !
>OOP - Generiske funktioner containere og iteratorer i C++.
Læs noget om STL f.eks.
http://www.yrl.co.uk/~phil/stl/stl.htmlx#OOP – arv og polymorfi.
En klasse kan extende en basis klasse. Og derved arver den alle
dens egenskaber.
I C++ kan man vælge at erklære metoder virtual eller ikke.
Når man kalder en virtual metode så kalder man den metode der hører
til det objekt der i sin tid blev instantieret.
Når man kalder en ikek virtual metode så kalder man den metoder
der hører til den erklærede type i current scope.
I java er alle metoder altid virtual.
#OOP-Templates og operator overloading.
Se link ovenfor.
#OOP - Multipel arv .
I C++ kan en klasse extende mere end en klasse.
I ganske få tilfælde er det ønskværdigt.
Og man kan lave noget værre snask hvis man misbruger det.
#OOP - Templates.
Se link ovenfor.