» »

Visual Basic, C#, C++, razlike...

Visual Basic, C#, C++, razlike...

1 2
3
»

NoUse4AName ::

Če veš kaj delaš lahko z c# dosežeš zelo spodobno hitrost.

64202 ::

MS je vprasal, kako je kaj C++ in C# za serverske aplikacije in sem mu odgovoril. Your point is?

Zgodovina sprememb…

  • spremenilo: 64202 ()

Nerdor ::

Rad bi povprašal mighty ST C++ Guruje sledeče: namreč osebno prihajam iz OOP jezikov Java&C#. Kar se teh dveh jezikov mi je vse kristalno jasno, ni da stvari nebi razumel. Razred->Objekt, statični svet in njihovi static bloki kode, brezimni razredi v samem razredu, zbirke in njihove lastnosti in prednosti pred array-em (tabelami, kot so tabele enake tipe in fiksna dolžina, zbirke različne tipi in možnost dodajanja in itd.)

Sedaj nastopi bastard C++! Ja dejansko bastard med jeziki! Ne razumem, da je bil C++ pred 2001 dlakocepski glede definiranja metod v samem razredu. To je bilo možno samo s besedo "inline" in da so bile metode kratke (vprašanje koliko kratke!?=). Definiranje vsebine metod naj bi potekalo samo s Razred::metoda() { .. vsebina metode .. }

Pol pa berem okoli leta 2002, da je možno brez definiranja besede "inline" pred metodo in da se sedaj metode vpisujejo v sam razred (torej je zaželjen java&C# style). ;((

Ne štekam, kako se zaženejo objekti iz razredov iz naslednje kode:

Razred objekt; // kaj je to, referenca!? v J&C# bi to bila!! Bojda se je objekt inicijaliziral na Stacku :|

Razred objekt = new Razred; // WTF!? Kaj se je Konstruktor inicijaliziral, da ali ne!? Kje je na stacku ali na heapu!? Wots goin' on!?

Razred objekt = new Razred(int nekaStevilka); // To štekam! j&C# style programiranja Objekt se je inicializiral na heapu. I hope!

Kaj je pravilno vpisati, da se objekt uniči!?=
delete[objekt]; ali free(objekt); ali ~objekt();

Bolj ko berem razno razno literaturo, bolj je konfuzno vse3 skupaj!! 8-O Kaj se dogaja C++ s teboj!? Kam lezeš!?= Ali mi lahko nekdo svetuje prava pota!? Ali je C++ močno discipliniran jeziko kot je Java&C# ali je Bastard, ki noče biti niti proceduralni niti objektni razred!?? :8)
... for lifetime!

Zgodovina sprememb…

  • spremenil: Nerdor ()

OwcA ::

Razred objekt;

Ustvari objekt na stacku, kliče privzet konstruktor.
Razred objekt = new Razred;

Ustvari objekt na heapu, vrne kazalec (zato manjka pred objekt *), kliče privzet konstruktor.
Razred objekt = new Razred(int nekaStevilka);

Podobno kot prej, le da je uporabljen drug konstruktor.
delete[objekt]; ali free(objekt); ali ~objekt();

delete objekt;
V kolikor je bil ustvarjen na heapu in je objekt kazalec, drugače umere, ko gre iz stacka, v vsakem primeru se destruktor sproži samodejno.
Otroška radovednost - gonilo napredka.

Nerdor ::

Kaj je še upanja za C++ !?

Torej bi moral deklarirati:
Razred objekt = new * Razred(int nekaStevilka);

Zanima me kakšna je situacija s STD !? Osnovne STD in "namespace" razumem, samo ne razumem, potem, v raznih primerih kod ko zčnejo vpletat kazalce v STD !? Je dovoljeno ali smiselno sploh se igrat s kazalci in STD !? :8)
... for lifetime!

OwcA ::

Ne, Razred *objekt = ...

STD je samo imenski prostor rezerviran za standardne knjižnice, tako da se bojim, da ne razumem čisto, kaj želiš vprašati.
Otroška radovednost - gonilo napredka.

MasterMind ::

Hmm... Če je C++ zastarel, bo pa potem jezik D postal popularen :D. (mimogrede.. že obstaja, in se že da pisati v njem, vsaj v Linuxu že :))
Gentoo, KDE uporabnik.

Zgodovina sprememb…

Nerdor ::

Owca: takole ti bi zastavl vprašanje, recimo za g++ 3.3 in 3.4 in Ms VS.Net 2003 c++ compiler, katera knjiga bi bila najbolj primerna za učenje C++. Ker tiste knjige pred 2001 so tako rekoč obsolite ozr. neuporabne, ker omenjajo še tisti hecni "inline" za "kratke metode" in da se metode definirajo s operatorjem "::" izven telesa razreda. Te knjige so hec, ker noben novejši C++ compiler nima več teh omejitev. Pa tud stare buhle nabijajo v stilu češ ko inicijaliziraš objekt moraš za ta objekt rezervirati še prostor v spominu s funkcijo malloc().
Mislim, da takih banalnosti s malloc() novejši compilerji tipa g++ 3.3/3.4 in VC.Net 2003 ni potrebno definirati, dovolj je samo "new" ni potrebno še malloc() tlačit.

Ali se motim, da je stara literatura o C++ še dovolj aktualna!? Samo mislim, da je edino najnovejša literatura o C++ dovolj aktualna za nove verzije compilerjev!? Se motim!?

Kako za vraga sploh začeti, pri tako novih compilerjih v C++!? Kaj sploh reči tistim važičem, ki še vedno veselo tlačijo malloc() !? Je to sploh potrenno !?
... for lifetime!

Nerdor ::

MasterMind: ni zastaral C++! Samo je problem, kako se sploh lotiti programirati v tem jeziku!? Kater stil programiranja je najpametneje uporabljati!? Eni zagovarjajo "malloc()" rezerviranje za objekt, ki ga inicijaliziraš, jest temu rečem sadomazohizem!!

Na sploh je problem, ka vsak po svoje programira v tem C++ pol se pa ti znajdi! Vsak po svoje zagovarja stil kodiranja! Eni so zadovoljni s "new", drugi spet ne morejo videt samo "new" treba je še malloc() stlačit v kodo! ;(( Tretji zagovarjajo delo na stacku in itd..
... for lifetime!

MasterMind ::

Nerdor.. pol sm te narobe razumeu.. se opravečujem. Kar se tiče malloc(). Kukr jst vem je to za deefiniranje prostora za pointerje. A klasi so pointerji? Če jih narediš kot pointerje, pol rabiš malloc(). (oz. druge metode). Seveda sm lah tok brcnu u temo, d bl nebi mogu. O klasih vem zelo zelo malo, in pri uri (APJ) smo komi začeli jemati pointerje. Klase pa začnemo jemati naslednje leto. Res je pa, d sm v kodi vedno vidu samo v stilu spremenljivka=new class(); brez malloc();.
Gentoo, KDE uporabnik.

Nerdor ::

MasterMind: samo objekti so lahko pointerji, mislim, pa da razredi pa da ne, ker so "kalupi" za "izdelavo" objektov :\

ostali: Katera literatura je najbolj primerna za te nove C++ kompajlerje !? :|
... for lifetime!

Zgodovina sprememb…

  • spremenil: Nerdor ()

OwcA ::

operator new je samo malo preoblečen malloc() in nima dosti zveze s prevajalnikom.

Za knjige malo poglej po temi [C++] Povezave. Tam so sami kvalitetni predlogi, še posebaj obe e-knjigi. Ni to toliko stvar novih prevajalnikov kot ANSI standarda, ki je že kar nekaj časa v veljavi.
Otroška radovednost - gonilo napredka.

Zgodovina sprememb…

  • spremenilo: OwcA ()

Nerdor ::

Owca: Hm, se je že našlo kaj, super :)) !

Samo zanima me, kdaj pa so "presekal" C++ programerji s tistim famoznim:
#include< iostream.h >

z "novim" načinom:
#include< iostream >
using namespace std;

Skoraj vsi novi primeri "Hello world!" so s tem "using namespace" načinom.

Katerega leta se je to zgodilo!? Mogoče 2002 !=?

Kako je pa kaj s header file-i!? So te še potrebni !? Ali pa so jih "namespace-i" čisto zamenjali!? Ker mi true OOP (Java&C#) ne poznamo termina header file (*.h, *.hpp, *.hxx) ?

PS: se opravičujem, in se zahvaljujem Owci na odgovorih. Nekako sem si rekel, let's give C++ very last shot. Da vidim, če se sploh da programirati v tem jeziku. :\ Preden te začnejo "izkušenejši" programerji napadati s pointerji.. brrrr pinterji.. bom počasi jih začel obravnavati.
... for lifetime!

Zgodovina sprememb…

  • spremenil: Nerdor ()

NoUse4AName ::

joj nerdor. Vzemi eno knjigo v roke pa si preberi.

Je pa lepo videt, dokazilo za moje trditve da se je veliko bolj pametno začet učit programiranja v c++, ker je veliko lazje presaltat iz nizjega nivoja na visji nivo, kot pa obratno.

Gundolf ::

Ojej Nerdor, mogoče bi bilo bolje da ostaneš na C# :D

In pa C++ ni nič presekal s "tistim famoznim"
 #include <iostream.h>
ampak je tisti "novi način" čisto isto, le da includa drugo datoteko, ki nima .h končnice. In ja headerji so pomembni in nimajo prav nobene veze z namespacei razen te, da vsi headerji za standardno knjižnico vsebujejo vse funkcije in razrede v namespaceu std. Za tebe, ki si pravi OOP programer;), bo lažje če si include predstavljaš tako kot so recimo v javi importi.

No veliko sreče pri učenju C++a, pa pazi da te kakšen pointer ne ugrizne, sem slišal da so nekje od leta 2003 še posebej napadalni.

Matako ::

No veliko sreče pri učenju C++a, pa pazi da te kakšen pointer ne ugrizne, sem slišal da so nekje od leta 2003 še posebej napadalni.

To je zato, ker je menda iz nekega eksperimentalnega "managed" jezika pobegnila neka mutirana in na vse hudo oporna vrsta. Barabe so popadljivi, ko star rotvajler!

Drugače pa te dileme okoli sintakse c++, c#, java niso ravno pomembne - ponavadi bolj odloča kakšne knjižnice ipd. so na voljo - "standardni" .NET razredi so še kar dobro zastavljeni, C++ pa ima saj trenutno veliko veliko več prostih in komercialnih knjižnic. Itd. itd... Skratka odločitev sigurno ni lahka! Je pa dobra novica, da se ne vem kako ne moreš zajebati - še najbolje pa je, če kolikor toliko obvladaš več stvari ...
/\/\.K.

64202 ::

> Je pa lepo videt, dokazilo za moje trditve da se je veliko bolj pametno začet učit programiranja v c++, ker je veliko lazje presaltat iz nizjega nivoja na visji nivo, kot pa obratno.

Sem znal javo pred c++ pa sem cisto zadovoljen z mojo potjo ucenja (programiram smrtno resno :) v c++ ene 4 leta). Bolj mi je zal, da nisem kaksnega tapravga visjenivojskega prej znal (prolog, lisp, ...)
I am NaN, I am a free man!

64202 ::

Mau lazem, c sem znal pred javo :)
I am NaN, I am a free man!

NoUse4AName ::

Ja torej. Si znal nizjenivojski jezik pred visoko nivojskem >:D My point exactly.

64202 ::

Moj prvi jezik je bil pa BASIC! >:D
I am NaN, I am a free man!

CCfly ::

Dijkstra te nima rad.
"My goodness, we forgot generics!" -- Danny Kalev

Gundolf ::

64202, verjetno maš na čelu brazgotino v obliki GOTO 20 :P

64202 ::

U bistvu mam na levem licu "Segmentation fault" na desnem pa "EXCEPTION_ACCESS_VIOLATION". Battle scars pa to :D
I am NaN, I am a free man!
1 2
3
»


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Visual Basic.NET - za začetnika ?

Oddelek: Programiranje
304602 (3721) mHook
»

Dogodek Študent je Car - v Ljubljani (strani: 1 2 )

Oddelek: Novice / Ostala programska oprema
638582 (7685) Fury
»

.net kaj je to?

Oddelek: Programiranje
243311 (2657) user4683
»

[C++] for {}

Oddelek: Programiranje
291622 (1316) Gundolf
»

ASP.NET(jezik C#) vs. PHP (strani: 1 2 )

Oddelek: Programiranje
7710188 (8832) Nerdor

Več podobnih tem