• 3 odgovora
  • 3.928 pregleda
streamovi, vektori itd. 23.11.2002. u 11:58 · pre 291 meseci #1
Imam jedno pomalo arogantno pitanje, vezano za praksu... Vidim da se tu i tamo spominju streamovi, vektori, klase itd. Da li mi to sve treba u zivotu, tj., da li je to neka prednost u brzini / komfornosti kada se radi sa tim ?? Pretpostavljam da je to onaj deo objektivnog u C++u... Do sada sam sasvim ok izlazio na kraj sa C-om, znaci bez neke prevelike "objektivnosti"... Bilo bi lepo ako bi neko stavio prednosti i mane...
Potpis
nema mira, nema pravde

http://www.anarchy-serbia.tk
Re: streamovi, vektori itd. 23.11.2002. u 12:28 · pre 291 meseci #2
Stvari stoje ovako:
Ako ti pises program u kome se koristi niz, a ne znas velicinu niza, a pri tom treba da sa njim obavljas slozene operacije, zar nije jednostavnije koristiti vektore?
Sto se klasa tice, to ne vredi ni pominjati, jer C++ NE POSTOJI BEZ KLASA!
Naravno u C-u imas struck, ali su ti tu svi clanovi javni(tj. dostupni svima). Ako zelis da napises program u kome ces zastititi podatke tu su klase. Dalje, klase imaju osobine sa kojima se lako resavaju slozeni problemi i slicno.
Bez svega toga nema C++, a nema ni govora o praksi!
Re: streamovi, vektori itd. 23.11.2002. u 13:08 · pre 291 meseci #3
koristim i ja klase, samo ne volim da preterujem... Da li mozda mozes da navedes jedan konkretan problem gde bi klase bile neophodne ? Meni klase sluze vise da uprostim program & razmisljanje & kod priblizim stvarnom svetu, ali nista vise od toga... Zato i pitam, mozda treba promeniti filozofiju
Potpis
nema mira, nema pravde

http://www.anarchy-serbia.tk
Re: streamovi, vektori itd. 23.11.2002. u 18:53 · pre 291 meseci #4
Klase, i uopšte OO pristup uopšte nisu neophodni. Ljudi su programirali decenijama pre nego što je OO zaživelo u praksi. I danas postoje veliki i složeni sistemi koji se razvijaju korišćenjem proceduralnog programiranja - primer su većina popularnih operativnih sistema, kao što je Windows i sve verzije i klonovi Unix-a. Međutim, činjenica je da je lakše projektovati, razviti, a posebno održavati sisteme koji su razvijani korišćenjem OO tehnika, pa se u praksi to itekako koristi.

E, što se tiče vektora i uopšte STL-a, tu dolazimo do jednog još modernijeg koncepta koji se zove generičko programiranje. Tu je suština razviti algoritme i kontejnere koji će na isti način raditi sa različitim tipovima promenljivih. Da bih to ilustrovao, daću primer generičke funkcije max u c++u:

template <class T>
const T& max(const T& lhs, const T& rhs)
{
return lhs > rhs ? lhs : rhs;
}

Ovu funkciju možeš da koristiš sa bilo kojim tipom koji radi sa operatorom >. Ovako nešto je nemoguće izvesti u "čistim" OO jezicima kao što su Java ili C#.
Potpis
IOCC
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme