Citat:
Dragi Tata:
1. Funkcija koju si opisao radi samo sa klasama izvedenim iz te bazne klase (ili npr interfejsa) koju si pomenuo. Kako da poredimo stringove, int-ove i ostale tipove? Morali bismo da pišemo wrapper klase za tako nešto.
ok. ovo je prvi argument koji stoji. ali primitivnih tipova ima vrlo malo, recimo desetak u javi (uzimam uvek za primer javu, jer je bolje poznajem, ali bez zelje da se pretvori u flamerski rat) i oni se svi mogu svrstati u dve grupe, tj mogu da se "odrade" sa samo dve, recimo overloadovane funkcije, jednu koja zavrsava cele, a drugu za realne tipove. a mogu uvek i da se wrapuju. btw, i string je klasa u javi (opet ja java ;)
ali sa druge strane, ovo mi se cini da i nije bash toliko cesto, narocito pricam o velikim sistemima, gde je reusabiliti koda bitna na viskom nivou, sto sigurno ne podrazumeva rad sa primitivima, vec definitivno sa klasama, interfejsima i sl.
2. ovo nije tesko ispitati u funkciji, mada se slazem da se u ovom slucaju greska ne dobije pri kompajliranju, sto je sigurno bolje...
3. stoji, mada je (cini mi se) opet razlika samo za primitivne tipove (kako moze razlicito da optimizuje kod za dve klase) a za to sam vec rekao da ja (pokusavam ;) da razmisljam na sto visem nivou, gde primitivi nisu ni na vidiku...
Citat:
Inače, kastovanje se među C++ "guruima" (Stroustrup, Mayers, itd) smatra znakom lošeg dizajna i namerno su uvedeni novi operatori za kastovanje sa ružnom sintaksom (npr reinterpret_cast) da bi ohrabrili programere da ih izbegavaju.
heh. c++ gurui obeshrabruju koriscenje neke c++ funkcije, koja ako se dobro koristi moze biti jako korisna, ali ako programer pogresi, moze dovesti do katastrofalnih posledica ;)
a svi c++ programeri napadaju javu sto je u nekim stvarima "ogranicena", tj namerno brani programerima da rade neke "potencijalno opasne) stvari... heh ;)
btw, zar c++ nema run-time proveravanje da li se kastuje dobar tip (i samo elegantno baci exception)?