[elektro] Béke poraira !

Lajos Rancz lajos.rancz at gmail.com
Thu Oct 13 21:39:08 CEST 2011


Helló!

Igen, ez ebben a formában tényleg rosszabb hatékonyságú mint ha kézzel
kireszelnéd, cserébe átláthatóbb.
De van erre is megoldás template-ekkel. Nagyjából ugyanolyan hatékonyra meg
lehet írni (esete válogatja, lehet gyorsabb lehet lassabb lesz). Itt egy
példa:
http://aszt.inf.elte.hu/~gsd/halado_cpp/ch06s06.html
Mondjuk ehhez már eléggé érteni kell a template programozáshoz. Azt is
szokták mondani, hogy a C++ egy 4 paradigmás nyelv:

   - procedurális (amik kb C szerűen használod)
   - objektum orientált (klasszikus osztály módi)
   - generic (stl és alap templatek, konténerek)
   - deklaratív (lásd fentebb)

Ahogy látom a C++ programozók nagy része az első kettőt még befogadja, az
STL-t már nehezebben és csak a legelvetemültebbek értenek a template
metaprogramminghoz. Sok idő ezt mind megtanulni és jelentősen más
gondolkodásmódot igényel mindegyik paradigma.

Üdv

2011. október 13. 18:18 Balázs Bámer írta, <bamerbalazs at gmail.com>:

> >> Nem akarok flame wart
> > Attol meg lesz. :-)
>
> Lesz vagy nem lesz, leírom, mi volt.
> Doszos Borland C++-t használtam akkor, volt szám objektum, operator
> overloadinggal minden lényeges művelet. Beírtam a programba, hogy
> Szam a=new Szam(3);
> Szam b=new Szam(5.5);
> Szam c=a+b*2.3-a*b*(a+b/2);
>
> marha elegáns volt, de létrejött a harmadik sorban egy rakás
> ideiglenes objektum, amiknek memóriát foglal, ha nem kell, fölszabadít
> stb. Persze lehetett volna úgy, hogy csak copy constructor van meg
> olyan műveletek, hogy = += -= /= *= és akkor lépésekre bontva leírom,
> hogy már meglévő objektumokon végezzek minden műveletet. Ez nem
> átlátható, viszont tisztábbnak éreztem mindent kézben tartani. Mondjuk
> pontosan nem emlékszem, mert 16 éve volt.
>
> szia: Balázs
>
> -----------------------------------------
>          elektro[-flame|-etc]
>


More information about the Elektro mailing list