[ CONFIQ @ 07.09.2001. 14:11 ] @
Ja sam malo nov u C/C++ (ali ne u skriptovanju) jel neko moze da mi kaze kakva je razlika izmedu C i C++ ?
i Jel neko zna begginer Tut za C++ ?
Hvala Unapred
[ Ivan Tanasic @ 07.09.2001. 15:45 ] @
Citat:
C0NF0RTY je napisao:
Ja sam malo nov u C/C++ (ali ne u skriptovanju) jel neko moze da mi kaze kakva je razlika izmedu C i C++ ?
i Jel neko zna begginer Tut za C++ ?
Hvala Unapred

po netu ima knjiga u html formatu za c++ (potrazi ih na google.com, upisi online books) od kojih su najcesce (a i dobr) c++ za 21 dan, c za 21 dan, c za 24h, whos afraid of c++, thinking in c++,......

[ Milan Aksic @ 07.09.2001. 18:16 ] @
Razlike, izmedju C-a i C++-a su 'male', generalno C++ je automatizovaniji, sto se enkapsuliranja tice a u neku ruku donosi i poboljsanja, koja se najpre ogledaju u samoj velicini i brzini izvrsavanja, mada ovo ne bi trebalo da bude glavna razlika, jer je veoma relativna, sve u svemu zavisi kakav stilvise volis, i sta konkretno hoces da radis. Pravi se podela i kao strukturno orijentisani jezik (c) i objektno orijentisani jezik (c++), bice najbolje da pre nego sto pocnes da ucis, nadjes na netu neki tutorijal o OO programiranju. Inace konkretne razlike su npr. da C u strukturama podrazumeva da su clanovi javni, dok C++ da su clanovi privatni, C enum tipove poistovecuje sa celobrojnim (int) tipovima dos su oni u C++-u posebni tipovi i nisu kompatibilni sa int tipovima, ima jos nekih razlika u konceptima i u sintaxi u osnovi nisu ogromne razlike.
To je sve.
[ CONFIQ @ 07.09.2001. 19:23 ] @
E to sam trazio Znaci razlika u opste nije velika kolko sam mislio da je ???
Cuo sam da je sa C napravljen linux jel je to tacno?
i sa kojim programom je napravljen program kao sto je IE?

[Ovu poruku je menjao C0NF0RTY dana 09-07-2001 u 08:25 PM GMT]
[ Milan Aksic @ 07.09.2001. 20:36 ] @
Ogromna prednost je sto u C++ kodu mozes koliko hoces da ubacujes C kod znaci mozes da kombinujes. Takvom kombinacijom (mada vise na C-u) se pravi svaki iole ozbiljniji OS pa i Linux. Za IE ne znam, da li je pravljhen u C-u ali mislim da nije vec u nekom rapid. Inace browser kao sto je IE mozes da napravis u VB, Delphi, CBuilder, VC++... za krace vreme.
[ leka @ 07.09.2001. 21:12 ] @
Ovo treba da se objavi u nekim novinama... Ozbiljno. - Ono... smesna strana (jel to bilo u Racunarima ili gde?).

C napisan za Linux, u IE, C/C++ skriptovanje...

Ovo mora da se neko salio.

Deyan
[ Milan Aksic @ 07.09.2001. 22:00 ] @
Citat:
leka je napisao:
Ovo treba da se objavi u nekim novinama... Ozbiljno. - Ono... smesna strana (jel to bilo u Racunarima ili gde?).

C napisan za Linux, u IE, C/C++ skriptovanje...

Ovo mora da se neko salio.

Deyan


Ne znam da li se meni obracas?:( nisam nigde spomenuo skriptovanje, naveo sam neke razlike koji fakti, takodje niko nije napisao da se C pise u IE vec da Internet browser mozes da napravis npr. u Delphi-iju (mogu da postujem listing), isto tako niko nije spomenuo da je C napisan/napravljen za Linux, vec da je Linux napisan na C/C++-u, a inace C je napravljen za UNIX u AT&T laboratoriji sedamdeset i neke.
[ Mikky @ 08.09.2001. 01:24 ] @
Citat:
autoexes je napisao:
po netu ima knjiga u html formatu za c++ (potrazi ih na google.com, upisi online books) od kojih su najcesce (a i dobr) c++ za 21 dan, c za 21 dan, c za 24h, whos afraid of c++, thinking in c++,......



znas li mozda gde ima da se skine whos afraid of c++ ali cela
ja sam ranije nasao samo prva 2-3 poglavlja
inace mnogo je dobra knjiga
[ Ivan Tanasic @ 08.09.2001. 18:36 ] @
Citat:
Mikky je napisao:

znas li mozda gde ima da se skine whos afraid of c++ ali cela
ja sam ranije nasao samo prva 2-3 poglavlja
inace mnogo je dobra knjiga


Naravno da znam ;)

http://www.steveheller.com/index.html

imas znaci who is afraid of c++, who is afraid of more c++, optimizing c++.. sad se pojavilo jos nesto, al ne znam da l one mogu da se skinu... ja sam ove skino odavno, tako da trebalo bi i sad da moze. Ako budes imo problema vici, okacicemo negde :^)

[ random @ 08.09.2001. 19:19 ] @
Da rezimiramo

o Linux je napisan u C-u (nijedan deo kernela nije pisan u C++-u, mada možda ima ponegde malo asemblera, ali i to jako malo)

o Windows kernel je napisan takođe u čistom C-u

o IE je (rekao bih) napisan u C++-u, i koristi MFC, mada se možda i varam, nagađam

o U Delphiju ne može da se napravi Web browser u 3 reda tako kao što vi mislite, već samo interfejs za browser -- taj "browser" bi i dalje koristio IE rendering engine. Ako vas interesuje kako se zaista pravi kompletan browser, u C++-u pritom, posetite www.mozilla.org ;o).
[ Mikky @ 08.09.2001. 23:01 ] @
Citat:
autoexes je napisao:
Naravno da znam ;)

http://www.steveheller.com/index.html

imas znaci who is afraid of c++, who is afraid of more c++, optimizing c++.. sad se pojavilo jos nesto, al ne znam da l one mogu da se skinu... ja sam ove skino odavno, tako da trebalo bi i sad da moze. Ako budes imo problema vici, okacicemo negde :^)


Who's Afraid of C++?
For an online version of the first four chapters of Who's Afraid of C++?, click here.

nope i ovde su samo prva 4 poglavlja te knjige koju sam citao, izgleda da nisu postavili na web celu knjigu da im ne propadne posao.....ali ok pogledacu ove druge siguran sam da su dobre kao ova

[ Ivan Tanasic @ 09.09.2001. 12:25 ] @
mikky covece: sad sam gledao na sajtu, i ima samo optimizing c++...
ja sam ranije skinuo who's afraid of c++, dok su to dozvoljavali, okacicu negde pa skidajte....
[ Ivan Dimkovic @ 09.09.2001. 12:40 ] @
Citat:
random je napisao:
Da rezimiramo

o Linux je napisan u C-u (nijedan deo kernela nije pisan u C++-u, mada možda ima ponegde malo asemblera, ali i to jako malo)

o Windows kernel je napisan takođe u čistom C-u

o IE je (rekao bih) napisan u C++-u, i koristi MFC, mada se možda i varam, nagađam

o U Delphiju ne može da se napravi Web browser u 3 reda tako kao što vi mislite, već samo interfejs za browser -- taj "browser" bi i dalje koristio IE rendering engine. Ako vas interesuje kako se zaista pravi kompletan browser, u C++-u pritom, posetite www.mozilla.org ;o).


Ovaj, Windows NT Executive (ntoskrnl.exe) je pisan delom u C++, ko ima debug simbole moze da pogleda kako se zovu source fajlovi :) Zasto su to radili ne znam. Dobar deo drajvera i ostalih I/O servisa su pisani u cistom C-u a nesto i u asembleru (HAL)

IE je napisan u C++ (OLE/DCOM zahtevaju C++) i ne koristi MFC (zapravo, malo MS softvera koristi MFC, oni obicno koriste neke njihove interne verzije posto je MFC nepotrebno glomazan, Office je prvi primer)
[ Ivan Dimkovic @ 09.09.2001. 12:48 ] @
Ah, da - moram da kazem nesto sto se tice onih koji misle da je Internet browser moguce napisati u igrackama tipa VB ili Delphi - okanite se :)

Prvo, vecina ljudi koja koristi VB i dobar deo onih koji koriste delphi nikad nisu radili low-level Win32(16/64) programiranje. Da bi ste napisali kod koji ce ispucavati jednu HTML web stranu potrebni su meseci rada kao i bar nekoliko stotina kilobajta C koda.

To sto vase RAD alatke imaju "sve gotovo" pa i OLE embeded browser to je jako lepo - ali je i taj embeded browser u stvari IE, koji opet ima hiljade i hiljade linija C/C++ koda. Kad vi na ekranu nacrtate prozor, znajte da Framework ispod toga koji vam to omogucuje radi MNOOOOGO posla (message handling, dispatching, painting, ...) i da je to neko sigurno morao da napise :))))))))) Programi se ne crtaju sami od sebe. Ovo vazi bas za VB ciji je engine (nekada vbrunxxx.dll a sad ni ja ne znam kako se zove) u stvari jedan OGROMAN C/C++ runtime engine koji je radjen godinama.

Kada se radi optimizovana alatka, kao sto je taj IE browser onda se to uvek radi od nule, a ne preko neke RAD alatke zato sto je moguce potpuno kontrolisati procese ispod. Samo tako mozete dobiti maksimalno brz kod koji je portabilan na mnoge platforme bez zavisnosti od nekih run-time engina, itd..
[ Milan Aksic @ 10.09.2001. 01:25 ] @
Gledaj, ja cak i ne znam da radim u delphiju, video sam text i listing pored njega u knjizi. Pa sada da li moze ili ne moze ne znam jer, opet ne radim u delphiju, vec za sada samo u c-u. Jednostavno pokusao sam da odgovorim na pitanje CONFORTY.


[Ovu poruku je menjao predator dana 09-10-2001 u 01:44 AM GMT]
[ Ivan Dimkovic @ 10.09.2001. 12:24 ] @
Ti primeri za Delphi (ili cak za VB) su aplikacije koje koriste framework od Delphi-ja/VB-a za GUI i OLE (COM) kontrolu koja ispucava prozor od IE. Ti preko OLE metoda mozes da kontolises IE prozor - ali je to i dalje IE, a ne Delphi Browser.

Primera radi, ja mogu da napisem engine za, na primer, real-time video processing i da implementiram vezu za programima preko OLE (D)COM interfejsa. Tada bilo ko u jeziku koji podrzava OLE moze da koristi usluge mog engina, ali ne moze da kaze da se video procesor moze napisati u VB-u, zar ne? :)
[ Milan Aksic @ 10.09.2001. 12:30 ] @
Ma ok, razumem ja tebe odlicno, samo ti kazem da ne radim u Delphiju i da sam ono gore rekao jer sam mislio da je tako. Inace razumemo se :)

Pozdrav.



[Ovu poruku je menjao passanger dana 09-11-2001 u 10:16 PM GMT]
[ tOwk @ 10.09.2001. 18:56 ] @
Citat:
Ivan Dimkovic je napisao:
Ah, da - moram da kazem nesto sto se tice onih koji misle da je Internet browser moguce napisati u igrackama tipa VB ili Delphi - okanite se :)

Prvo, vecina ljudi koja koristi VB i dobar deo onih koji koriste delphi nikad nisu radili low-level Win32(16/64) programiranje. Da bi ste napisali kod koji ce ispucavati jednu HTML web stranu potrebni su meseci rada kao i bar nekoliko stotina kilobajta C koda.

Hm, e sada se vec ne bih slozio. Kao prvo, Internet browser je u Delphi-u ili VB-u lako napisati. Sam HTML nije toliko komplikovan za implementaciju kao na primer DHTML, DOM, ECMAScript (aka. JavaScript), VBScript i slicno. Sam HTML je SGML aplikacija, pa je potrebno napisati jedan SGML parser i interpreter (kojih ima dosta na Internetu, i koje bi koristio svaki mudriji covek, cak i C programer, umesto da pise svoje rutine), i downloadovati HTML DTD sa w3c.org. Dalje, HTML se sastoji iz toliko jednostavnih elemenata, da bi bilo potrebno maksimalno do dve nedelje da se napravi kompletan browser. Cak bi se u taj vremenski raspon moglo ubaciti i razvijanje CSS-a, posto kada je staticki isto ne zahteva mnogo vremena.

Naravno, malo bi teze bilo napraviti browsere ala Netscape, IE koji i od neispravne strane mogu da daju kakav-takav prikaz. A uz pravu organizaciju, implementacija ECMAScript-a, DOM i DHTML bi bila relativno lako izvodiva (naravno, uz malo veci broj covek-sati).


Citat:

Kada se radi optimizovana alatka, kao sto je taj IE browser onda se to uvek radi od nule, a ne preko neke RAD alatke zato sto je moguce potpuno kontrolisati procese ispod. Samo tako mozete dobiti maksimalno brz kod koji je portabilan na mnoge platforme bez zavisnosti od nekih run-time engina, itd..


"Maksimalno brz kod koji je portabilan na mnoge platforme"??? Od nule bi morao biti ASM, a sumnjam da je IE pisan u ASM-u. Jesi li probao nekad da uporedis brzine Mozilla 0.9.2 i IE5 na starijem racunaru, npr. Pentium MMX 166MHz? Naravno, o portabilnosti nemam reci: portabilan na Windows x86 i... i...

U Delphi-u, niko nije obavezan da koristi VCL, vec moze sve isto kao i u C-u: pomocu WinAPI-ja. A ukoliko je tvoja konstatacija da Delphi ima sporiji kompajler od svih ostalih C kompajlera, grdno se varas.

Toliko.
[ tOwk @ 10.09.2001. 19:04 ] @
Citat:
Ivan Dimkovic je napisao:
Primera radi, ja mogu da napisem engine za, na primer, real-time video processing i da implementiram vezu za programima preko OLE (D)COM interfejsa. Tada bilo ko u jeziku koji podrzava OLE moze da koristi usluge mog engina, ali ne moze da kaze da se video procesor moze napisati u VB-u, zar ne? :)


Sada samo kratko: koji je to mehanizam nedostupan VB-u a dostupan C-u koji omogucava da se u C-u pisu real-time aplikacije, a ne dozvoljava u VB-u. Koliko sam ja upoznat sa tim, radi se o procesu "schedulinga" poslova i vremenskog ogranicavanja istih.

Uh, zaboravio sam da u VB-u ne mogu da se koriste sistemski tajmeri (citaj: ironija), jedini koji su dostupni C-u. A izmedju ostalog, Win9x se moze koristiti za real-time poslove samo zato sto ima podrsku za DOS, inace je to potpuno neprilagodjen operativni sistem ovakvoj vrsti poslova - scheduler mu je suvise naklonjen desktop upotrebi (pointer misa ima top priority :)), i prema tome moze se desiti da tvoj program ne ispuni zahtev, a da se mis lepo pomera po ekranu, ma u kom jeziku da si pisao taj program.

A s obzirom na poredjenje, jos ce neko da pomisli kako je IE real-time aplikacija. :)

SMEH

Toliko.
[ Ivan Dimkovic @ 10.09.2001. 19:41 ] @
Citat:
tOwk je napisao:
Citat:
Ivan Dimkovic je napisao:
Primera radi, ja mogu da napisem engine za, na primer, real-time video processing i da implementiram vezu za programima preko OLE (D)COM interfejsa. Tada bilo ko u jeziku koji podrzava OLE moze da koristi usluge mog engina, ali ne moze da kaze da se video procesor moze napisati u VB-u, zar ne? :)


Sada samo kratko: koji je to mehanizam nedostupan VB-u a dostupan C-u koji omogucava da se u C-u pisu real-time aplikacije, a ne dozvoljava u VB-u. Koliko sam ja upoznat sa tim, radi se o procesu "schedulinga" poslova i vremenskog ogranicavanja istih.

Uh, zaboravio sam da u VB-u ne mogu da se koriste sistemski tajmeri (citaj: ironija), jedini koji su dostupni C-u. A izmedju ostalog, Win9x se moze koristiti za real-time poslove samo zato sto ima podrsku za DOS, inace je to potpuno neprilagodjen operativni sistem ovakvoj vrsti poslova - scheduler mu je suvise naklonjen desktop upotrebi (pointer misa ima top priority :)), i prema tome moze se desiti da tvoj program ne ispuni zahtev, a da se mis lepo pomera po ekranu, ma u kom jeziku da si pisao taj program.

A s obzirom na poredjenje, jos ce neko da pomisli kako je IE real-time aplikacija. :)

SMEH

Toliko.



Ovako

1. VB ima jako los kompajler koji se ne moze porediti sa boljim C++ kompajlerom - nema to veze sa tajmerima, VB jednostavno generise SPOR KOD :)

To ti je prvo sto ti lomi koplje za implementaciju nekog iole tezeg algoritma u VBu (npr: G723, G729, MPEG, 3D rendering API, speech processing, image processing, DSP, i jos mnogo toga...)

2. VB ne podrzava inline assembly

Dakle, ako ti hoces da neki kod (npr: kvantizacija kod G.7xx, brza matematika kod 3D rendering) optimizujes tu ces dobro da se namucis u VB-u, nema to nikakve veze sa tajmerima - tvoj alogirtam nece ni zavrsiti posao u real-time

3. Sto se misa tice, pa mozes ti u C++ napisati kernel-mod servis za Windows NT koji se izvrsava u kernel modu i ima prioritet nad bilo kakvim misem i ostalim glupostima. To u VB-u neces moci da izvedes. Ovo isto vazi i za Windows 95/98 gde mozes lepo napisati VxD drajver.

4. IE nije "real-time" ali je primer jedne optimizovane aplikacije koja ni u snu ne bi mogla da se napise u VB-u.. tj. mogla bi ali bi radila kao puz.

5. VB JE JEBENO NEPORTABILAN - znaci, ti napises code base od 1000000 linija koda i tvoja kompanija odluci da predje na nesto drugo (Linux, Unix, MacOS, tralala) i ti onda dobijes posao da bacis 1000000 linija u djubre i napises novih 1100000 linija u C++ koje ce biti portabilne...

i tako, ad infinitum :)
[ tOwk @ 11.09.2001. 03:46 ] @
Citat:
Ivan Dimkovic je napisao:

Ovako

1. VB ima jako los kompajler koji se ne moze porediti sa boljim C++ kompajlerom - nema to veze sa tajmerima, VB jednostavno generise SPOR KOD :)

To ti je prvo sto ti lomi koplje za implementaciju nekog iole tezeg algoritma u VBu (npr: G723, G729, MPEG, 3D rendering API, speech processing, image processing, DSP, i jos mnogo toga...)

Poenta sa real-time poslovima je da se oni moraju tako izvrsavati i ako je racunar sporiji, pa prema tome i te razlike u generisanom kodu do 30% uticu isto kao i da uzmemo 30% sporiji racunar na kojem mora da radi algoritam. Prema tvojim izjavama, vidim da ne razumes koncepte u vezi real-time procesa. Zato cu da konstatujem kratko: real-time algoritam je onaj koji moze da pokrece i "zivot-ili-smrt" uredjaj. Cim se uvidi zakasnjenje (da li je zbog sporijeg koda na kome ti insistiras, ili zbog sporije masine, ili zbog glomaznog multiprogramiranja), preskacu se neobradjene informacije da bi se moglo pristupiti obradi novih. Ne mozes ti na XT-u da napravis real-time aplikaciju koja prepoznaje glas pomocu trenutno poznatih algoritama, ali prava real-time aplikacija mora da bude u mogucnosti da radi i na XT-u, zato sto se svakom sistemu moze desiti da VEOMA uspori.

Citat:

2. VB ne podrzava inline assembly

Dakle, ako ti hoces da neki kod (npr: kvantizacija kod G.7xx, brza matematika kod 3D rendering) optimizujes tu ces dobro da se namucis u VB-u, nema to nikakve veze sa tajmerima - tvoj alogirtam nece ni zavrsiti posao u real-time

Vidi iznad, ne postoji pravo resenje za real-time (osim "brzi, brzi, brzi, brzi,..." racunar), "nebitne" informacije se moraju preskociti. Ukoliko procesiramo snimak video kamere, i procesor ne moze da stigne da isprocesira 50fps, preci ce na 10fps, necemo iskljuciti racunar i ubaciti 5 puta brzi procesor (recimo kod sigurnosnih uredjaja, posto ce i 10fps moci da primeti "uljeza", a ukoliko isprocesira svih 50fps posle 5 minuta, moze biti "malo" kasno). Zato se i zovu real-time.

Citat:

3. Sto se misa tice, pa mozes ti u C++ napisati kernel-mod servis za Windows NT koji se izvrsava u kernel modu i ima prioritet nad bilo kakvim misem i ostalim glupostima. To u VB-u neces moci da izvedes. Ovo isto vazi i za Windows 95/98 gde mozes lepo napisati VxD drajver.

Nisam siguran, VB omogucava pravljenje i EXE i DLL fajlova, a i sami VXD su obicni izvrsni fajlovi sa nekoliko "opcija". Ne poznajem tacno izgled svakog, al pretpostavljam da se moze uz pomoc nekih caka isto to uraditi i u VB-u. Naravno, u vezi ovoga nisam siguran, pa je lako moguce da si u pravu, medjutim, to je vise vezano za linker nego za sam kompajler.

Citat:

4. IE nije "real-time" ali je primer jedne optimizovane aplikacije koja ni u snu ne bi mogla da se napise u VB-u.. tj. mogla bi ali bi radila kao puz.

Ali zasto, kada je moguce koristiti iste API pozive bez uopste upotrebe VB runtime-a??? Jos ce ispasti kako je Basic sintaksa automatski sporija od C sintakse, nebitno od toga kakav se kod generise.

Citat:

5. VB JE JEBENO NEPORTABILAN - znaci, ti napises code base od 1000000 linija koda i tvoja kompanija odluci da predje na nesto drugo (Linux, Unix, MacOS, tralala) i ti onda dobijes posao da bacis 1000000 linija u djubre i napises novih 1100000 linija u C++ koje ce biti portabilne...

i tako, ad infinitum :)

Hm, postoje i Basic kompajleri za POSIX/SUSv2+/BSD platforme, pa je situacija ista i sa C, i sa Basic kodom. C kod koji poziva WinAPI je jednako portabilan kao i Basic kod koji koristi VB runtime. Zasto su Delphi programerima trebali meseci da od Delphi-a naprave Kylix (pretpostavljam da su oba pisana u C/C++-u, posto nema u cemu drugom da se pise).

Zato sto se portabilnosti tice, ja ne znam ni jednog Win programera koji je napisao program koji se moze istovremeno kompajlirati i na POSIX platformama (tu iskljucujemo programe tipa "hello svete"). Promena okruzenja od MFC, WinAPI, ili neceg treceg na POSIX platforme, garantuje i veliku izmenu koda koji se bavi korisnickim interfejsom i upotrebom sistemskih servisa, nezavisno od jezika koji se koristi (Basic, C, Pascal...).

Ne treba pricati o necemu sto se ne poznaje dovoljno (citaj: realtime), i dalje na osnovu toga izvoditi zakljucke (ma kakvi bili). Slazem se da VB ima nesto sporiji kompajler, ali to ne utice na njegovu mogucnost da se sa njime prave realtime aplikacije, isto toliko koliko i sa C-om na istoj platformi (Win). Cak ni Linux ni vecina Unix sistema nije prilagodjeno real-time aplikacijama (mada sigurno postoji neki patch za real-time-linux ili tako nesto). Potpuno druga stvar su aplikacije za koje bi bilo pozeljno da rade real-time, ali nece doci do eksplozije ako ne ispune zahteve (recimo speech-processing radi izdaje komande racunaru, ukoliko zakasni obrada, zakasnice i komanda, ali desktop korisniku nece biti odsecena glava zbog toga).

Nadam se da sam pojasnio sta je real-time proces, i zasto je svejedno o kom se jeziku radi.

A sto se tice same teme, neko je konstatovao kako je C++ brzi, ali ne vidim kako bi to moglo biti istina kad je komplikovaniji. Dobar C kompajler moze generisati samo brži ili jednako brzi mašinac kao i dobar C++ kompajler.

Toliko.