C++

http://www.java2s.com/Code/Cpp/CatalogCpp.htm

=Demo progik=
 * CppTomb elemeinek osszeadasa templattel
 * Cpp Dijkstra Shortest Path
 * Cpp point class

= Castok =
 * static_cast - tipus biztos
 * dinamyc_cast - classokra
 * const_cast -
 * reinterpret_cast - nem biztonsagos

= Design Patterns = =Cuccok=

Referencia változók
A C++-ban a C-hez képest egy teljesen új típuscsoport is megjelent, melyet referencia típusnak hívunk. Ezen típus segítségével referencia változókat hozhatunk létre. Definíciószerűen a referencia egy alternatív név egy memóriaobjektum (változó) eléréséhez. Ha bármikor kétségeink vannak egy referencia értelmezésével kapcsolatban, akkor ehhez a definícióhoz kell visszatérnünk. Egy X típusú változó referenciáját X& típussal hozhatjuk létre. Ha egy ilyen referenciát explicit módon definiálunk, akkor azt kötelező inicializálni is, hiszen a referencia valaminek a helyettesítő neve, tehát meg kell mondani, hogy mi az a valami.

Tekintsük a következő néhány soros programot: Mivel az r a v változó helyettesítő neve, az int& r = v; sor után bárhol ahol a v-t használjuk, használhatnánk az r-et is, illetve az r változó helyett a v-t is igénybe vehetnénk. A referencia típus implementációját tekintve egy konstans mutató, amely a műveletekben speciális módon vesz részt.

A referencia típus javasolt felhasználása nem is ez, hanem elsősorban a C-ben hiányzó cím (azaz referencia) szerinti paraméter átadás megvalósítása. Nézzük meg példaként az egész változókat inkrementáló (incr) függvény C és C++-beli implementációját. Mivel C-ben az átadott paramétert a függvény nem változtathatja meg (érték szerinti átadás), kénytelenek vagyunk a változó helyett annak címét átadni melynek következtében a függvény törzse a járulékos indirekció miatt jelentősen elbonyolódik. Másrészt, ezek után az incr függvény meghívásakor a címképző operátor (&) véletlen elhagyása Damoklész kardjaként fog a fejünk felett lebegni.