Forskel på c++ og c#

Tags:    c++

<< < 12 > >>
Hej.

Jeg ville lige høre om der var nogle der kunne fortælle mig hvad forskellen er på c++ og c#?





C++ er et "native" programmeringssprog, og det betyder at når et program bliver kompilet, så bliver det kompilet direkte til et sprog computeren forstår.

C# bygger på .NET Framework, når der bliver compilet så bliver det oversat til MSIL, som derefter fortolkes af en fortolker når du kører programmet.

I begge sprog kan man benytte OOP, men i C# er det hele bygget op efter OOP, selv de simple datatyper. Hvorimod i C++, der behøver man ikke at bruge OOP og kan dermed nøjes med funktions programmering. OOP er at foretrække i mange tilfælde.

Ja, ellers ved jeg ikke lige hvad jeg skal sige mere. C# er nok det nemmeste i starten at lære, fordi man ikke skal tænke på garbage collection og .NET frameworket tilbyder mange færdige biblioteker.

Der er nok nogle andre som har en anden mening, men den skal de så have lov til at have. :)



C++ er utrolig nem i starten. Men knap så mange open-source koder som der findes med C#. (Når jeg er på google).



C++ er utrolig nem i starten. Men knap så mange open-source koder som der findes med C#. (Når jeg er på google).


On the contrary...C++ er svært for en nybegynder, men der findes tonsvis af opensource kode skrevet til C++.



Jeg syntes at der er få i forhold til C#!



Jeg syntes at der er få i forhold til C#!

Jeg er enig med Robert.

For en lidt løs sammenligning.

En søgning på: c plus tutorial, giver 31mio hits.
En søgning på: c sharp tutorial, giver 1,5mio hits.





Næsten alt er sagt, men det skal da lige nævnes at C# er lavet af Microsoft mens C++ vist (ret mig hvis jeg tager fejl) er rimelig åbent og lavet af forskere.

C# bygger primært til udvikling til Windows. Så det anbefales på ingen måde at bruge sproget til multiplatforme. C# kan i øvrigt heller ikke bruges til at lave styresystemer...

C++ er derimod rigtig egnet til multiplatforme og styresystemer (Linux kernen er eksempelvis lavet i C++). Derudover er C++ også et sindsyg hurtigt sprog (bruges af NASA til raketbaneberegninger), men igen. Det er ikke lige for nybegyndere (ikke sigende at nybegyndere ikke kan lære det).



Tag et kig på http://freshmeat.net (et af de største opensource hosting services derude). Der er 343 projekter tagget som C#, og 4998 C++ projekter.



--> C++ vist (ret mig hvis jeg tager fejl) er rimelig åbent og lavet af forskere.

C++ er lavet af en dansker ved navn: Bjarne Stroustrup (Her er hans hjemmeside: http://www.research.att.com/~bs/)

-->Linux kernen er eksempelvis lavet i C++

Nej den er lavet i C.

--------------------------------------------------

En ret sjov og grov samenligning af C# og C++ som jeg hørte engang:

Tænk på C# som en station car, hvor du har airbags, automat gear, ABS osv... For at komme fra A til B kommer du ret sikkert, nogle gange langsomt frem.

Tænk på C++ som en Ferrari, hvis du er "The Stig" ;) kommer du lynene hurtigt fra A til B. Men hvis du ikke ved hvordan du skal køre en Ferrari, kan du køre galt et sted på vejen...



Tak for alle de mange svar, har leget lidt med c++ før så ud fra jeres svar lyder det ikke som noget problem at skifte til c#.

Ossi, du skriver at c++ er hurtigere end c#, men c++ understøtter da ikke .net vel?

og hvad kan i anbefale, c++ som er hurtigt eller c# hvor der er som er nyere og har .net understøttelse?



Tak for alle de mange svar, har leget lidt med c++ før så ud fra jeres svar lyder det ikke som noget problem at skifte til c#.

Ossi, du skriver at c++ er hurtigere end c#, men c++ understøtter da ikke .net vel?

og hvad kan i anbefale, c++ som er hurtigt eller c# hvor der er som er nyere og har .net understøttelse?


Jo, der findes .net til C++, men det er ikke helt korrekt, at C++ er hurtigere end C# (eller Java for den sags skyld).

C# og Java bliver runtime compilet og optimeret til den maskine, som eksekverer koden, og det kan man ikke med C++, så til mange opgaver vil C# og Java kunne optimeres hårdere end C++ og dermed give en forbedret ydelse. Men du vil kunne finde benchmarks som viser både det ene og det andet, så fokusér hellere på noget andet...letlæselig kode, nemmere debugging, færre fejlkilder...og her vinder C# (men Java er mere krydskompatibelt, så Java vinder efter min mening over C#).



<< < 12 > >>
t