( Andrei | 2014. 07. 17., cs – 09:41 )

A C++ tervezesenel szempont volt, hogy a C programozasban szerzett tapasztalatbol minel tobb hasznosithato legyen. Sot tovabb menve: maga a c-ben megirt kod is *majdnem* teljesen hasznalhato. nyilvan gond van, ha olyan valtozonevet hasznalsz, ami c++-ban nem megengedett pl. int throw = 5; esetben pampog a c++ fordito. Van meg par aprosag, de en azt mondom, hogy a jol megirt c kod c++ kornyezetben valo felhasznalasa nem kulonosebben nehez (ez szerintem pokolian nagy elony, egy csomo jo c-s library-t lehet integralni a c++-kodhoz mindenfele kiterjesztesek irasa nelkul).

A jelentos elteres ott adodik majd, hogy a C-ben megszokott idiomak/best practice-ek esetleg elavultnak szamitanak c++-ban, vagy vannak egyeb lehetosegek is. Nyilvan meg kell oket ismerni es el kell tudni donteni, hogy az adott helyzetben erdemes-e oket hasznalni.

Pl.:

- hibakezeles: a hibakodon felul (c-ben nagyjabol ez az egyetlen lehetoseg) lehetoseged van kivetelek dobasara
- generikus kod: c-ben ezt altalaban a legnagyobb kozos oszto (azaz legyen minden void *) esetleg makrok segitsegevel lehetett megtrukkozni, C++-ban template-ek is vannak
- eroforras-kezeles: c-ben ez expliciten ment minden esetben, c++-ban ugye letezik a destruktor, ami sok esetben sok boilerplate kodtol kimel meg, illetve konnyebbe teheti a hibak kezeleset.
- funktorok: c-ben a fuggvenypointerek vannak erre a celra, c++-ban a fuggvenyobjektumok, amik eleg sok hasznos extraval birnak.

Szoval nem veletlen, ha jo c tudassal ismeros terepen erzed magad a c++-ban is, ugyanis ez tervezesi szempont (es a sikeresseg egyik oka) volt. Azonban a felszini hasonlosagok ellenere rengeteg technika van, ami pluszkent jelenik meg.

A tutorialok helyett/mellett ajanlom Scott Meyers: Effective C++ konyvenek elso fejezetet is (magyarul is megjelent!). Jol ir ezekrol a dolgokrol.