PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C vs. C++



cyber_gh0st
26.06.2009, 17:50
Hi
ich lerne grade (seit ein Paar wochen) C aber ich lese hier immer nur was von C++ und wenn ich mich mal umsehe spricht alles nur von Objektorientiert.

Naja da wollte ich einfach meal Fragen was den an C++ besser ist als bei C und ob man die gleichen Header includen kann also dass ich in C++ immernoch z.B. printf benutzen kann.

und zu guter letzt wollte ich euch fragen womit ihr Programmiert und warum also C oder C++


mfg cyber_gh0st

l0dsb
26.06.2009, 17:52
C++ ist weitestgehend abwärts kompatibel zu C, welches Paradigma man verfolgt, ist jedem selbst überlassen. Wurde schon des Öfteren diskutiert, einfach mal suchen. ;)

cyber_gh0st
26.06.2009, 18:03
also das heißt wenn ich jetzt C lerne kann ich das gleiche auch in C++ machen?
(jetzt abgesehen davon dass man in C++ öfter Casten muss u.s.w.)
aber ich kann im Prinziep die gleichen Funktionen in C++ benutzen die ich auch in C benutzen konnte oder wie???

Keksdose
26.06.2009, 18:04
Ich programmier C++. Durch die Kompatibilität kann ich jetzt aber nicht sagen, dass ich NUR C++ programmier...

Blacksummer
26.06.2009, 18:06
Die Hauptunterschiede sind wohl, dass C++ Objektorientiert ist und C nicht. Willst du richtig Lowlevel (Betriebssystem-,Microcontroller) programmieren, dann ist C wohl Effektiver. Für normale Anwendungen ist halt der Vorteil von C++ ,dass OOP. Auch ist C ein kleines Tick schneller ;)

cyber_gh0st
26.06.2009, 18:09
also das heißt wenn ich jetzt C lerne mache ich nichts falsch oder?

Blacksummer
26.06.2009, 18:11
also das heißt wenn ich jetzt C lerne mache ich nichts falsch oder?
Nein, du machst nichts Falsch, ich programmiere selbst lieber in C. Außerdem kannst du alles in C realisieren, was du auch in C++ realisieren kannst, genauso ist es andersrum auch.

Z o D
26.06.2009, 18:12
also das heißt wenn ich jetzt C lerne mache ich nichts falsch oder?


M$A!
26.06.2009, 20:33
Wenn die die Basics drauf hast, wirst du eh merken ob du lieber zu C++ umsteigen willst oder nicht. :)
Was kannst du denn schon alles?

cyber_gh0st
26.06.2009, 21:40
Wenn die die Basics drauf hast, wirst du eh merken ob du lieber zu C++ umsteigen willst oder nicht.
Was kannst du denn schon alles?
Ich kann Varriablen Arrys Funktionen Pointer Structs Specherverwalteung mit malloc und co.

sowas halt also ich arbeite noch ziemlich am Anfang...
naja aber ich lerne noch :)

blackberry
27.06.2009, 06:19
also das heißt wenn ich jetzt C lerne kann ich das gleiche auch in C++ machen?
(jetzt abgesehen davon dass man in C++ öfter Casten muss u.s.w.)
aber ich kann im Prinziep die gleichen Funktionen in C++ benutzen die ich auch in C benutzen konnte oder wie???

Jein.
Im Endeffekt kannst du alles was du mit C schreiben kannst auch in C++ schreiben und vice versa. (auch wenn der Code eventuell anders aussieht)

Aus der Sicht des Programmierers bietet C++ aber einige Vereinfachungen.
Das sind z.B. Klassen, Templates, Try-Catch und Operatoren-/Methoden-/Funktionen-Überladen.
(ob du diese jetzt brauchst kannst du selber entscheiden - ich brauche sie meißtens nicht und programmiere daher eher in C)

Wenn du C++ lernst, kannst du auch C (ein paar kleinere Unterschiede sind dennoch zu beachten - das Buch "C++ von A bis Z" von Jürgen Wolf listet die wichtigsten von ihnen auf), solange du auf die oben aufgeführten "Vereinfachungen" verzichtest.

Umgekehrt gilt das nicht mehr ganz, da du, wenn du C lernst die Vereinfachungen von oben nicht kennenlernst - also zwar C++ Programme schreiben könntest, jedoch nicht alle Mittel der Sprache ausnutzen könntest.

Blacksummer
27.06.2009, 10:32
Vollzitat vom Vorposter entfernt - § 2.6 - Boardregeln - BlackBerry

Im Grunde gebe ich dir Recht, dennoch ist es so, dass wenn man als erstes C++ lernt, mit der Objekt Orientierten Programmierung und dann auf C umsteigen will, es mehr Komplikationen gibt, als anderes rum. Für jemanden der gerne die besagten Funktiontn (-Klassen etc.) benutzen will, wird es recht mühsam, auf C umzusteigen.

Nun, du hast Recht, einige Sachen vereinfachen die Arbeit drastisch, dennoch sind sie, wie du schon erwähnt hast nicht Notwendig. Außerdem wäre es Sinnlos, die besagten Funktionen, beim richtigen Low-Level Programmieren zu benutzen. Nun, die Diskussion kann man ewig führen ;)

blackberry
27.06.2009, 10:58
Nun, die Diskussion kann man ewig führen ;)

Und daher:

/closed