( tetra | 2012. 02. 20., h – 16:54 )

Arról volt szó, hogy rossz szokások. Mivel a C++ nem tiltja a C legnagyobb részét, ezért simán átkerül ha valaki nem figyel oda. Te azt mondod, hogy a C tudás nélkül a C++ mit sem ér, én meg azt, hogy minek tanuljunk C-t, amikor a C++-ban nagyrészt benne van. Ha a C++-t tudod, akkor a C-t is tudod. Körkörös az érvelésed, vedd észre.
Először abból indulsz ki, hogy C++-t nem lehet C előképzettség nélkül normálisan tanulni, utólag pedig abból, hogy ha a C++-t megtanultad, akkor a C-s dolgokkal is tisztában vagy, ami igaz, de nem volt rá szükség a C tanulására.

A C++ sokkal kezdőbarátabb nyelv, mint a C. Simán lehet templateket használni anélkül, hogy fogalmad lenne róla, mik azok. Legjobb példa az iostream. Mindenki tudja, hogy kell kiírni a cout-tal, pedig esetleg azt sem tudja, hogy ott egy operátortúlterhelés van, nemhogy az egy template egy példányának egy példánya. Érted. Magas szintről is lehet nézni, és lehet hatékonyan programozni. Minél kevésbé kell lemenni, annál jobb, annál absztraktabb, annál újrafelhasználhatóbb, és annál tisztább lesz a kód. Vectort bárki tud használni, ha mindig újra kéne írni new-delete párossal magadnak, az már nem lenne szép.
Ugyanígy a memóriamenedzsment. Sok GC implementáció van. Ha valaki olyan céghez megy, ahol ilyet használnak, és betartja a szabályokat, akkor nem kell menedzselnie a memóriát. De ha kell is, nem egy túl bonyolult dolog alapszinten. Amúgy is használjon mindenki RAII-t. Viszont a C-s rossz szokások megint tévútra vihetnek itt, és azt is new-delete-el oldja meg, amit nem kéne.

>De abban a pillanatban, amint elfelejted végiggondolni, hogy mi történik a háttérben, csúnyán rá fogsz faragni.

Vagy nem. Ha okos vagy, és szép kódot írsz, nem fogsz beleesni ilyenekbe. Ez elég nagy különbség a C és a C++ között amúgy, C++-ban LEHET ilyan kódot írni.
----
Hülye pelikán