C++ oder C
-
C ist eine wirklich einfache Sprache.
-
C ist eine Sprache für Frickler.
-
Habe C gelernt und kann nicht sagen daß ich es bereuen tue, der ganze c++ kram ist doch für die katze, c ist viel übersichtlicher und wer richtig nachdenken kann, der brauch die c++ hilfsmittel zur strukturierung ohne hin nicht. siehe id software, deren spiele sind immer die besten und sind immer in gutem c gemacht,

-
Brennleuchte schrieb:
in gutem c gemacht,

falsch! siehe quake 3 sourcecode.
-
Naja, auf Basis der Übersichtlichkeit lassen sich C++ und C schlecht vergleichen.
Ein gut durchdachter oop c++ quellcode kann übersichtlicher sein als 5000 Prozeduren reines C
andersrum natürlich genauso
-
@Brennleuchte
Das ist es ja: Wer das nicht braucht muss es in C++ ja nich benutzen, aber icch bezweifel, dass du dich mal näher mit OOP befasst hast, sonst würdest du so etwas nicht einfach argumentlos in den Raum stellen.Und die Übersichtlichkeit ist zu 90% auf den Programmierere zurückzuführen!
-
In C++ kann man mehr high-level programmieren als in C und ich finde, dass kann einem Beginner schon das Leben erleichtern. Dynamische Arrays wie der std::vector nehmen einem doch schon mal Arbeit ab. Referenzen können die Verwendung von Pointern reduzieren usw. (Und Templates rocken einfach. Aber das sind keine Themen direkt für Einsteiger)
Ich gebe den Vorrednern recht: Der Einstieg in C++ ist nicht leicht. Ich hab auch am Anfang überlegt, ob ich nicht lieber mit Java einsteigen soll, weil in der Bücherei mehr Bücher für Anfänger gab. Dann hab ichs aber doch durchgezogen und ich kann Dir sagen, dass C++ immer mehr Spaß macht, je mehr man lernt. Die Themen, die am Anfang neu und ungewohnt sind, sind nach einer gewissen Zeit ganz selbstverständlich. Mir jedenfalls macht das lernen von C++ einen Heidenspaß.
Ich habe auch mit einer Scriptsprache begonnen und ich muss sagen, dass ich durch C++ erstmal wirklich verstanden hab, was "richtiges" Programmieren ist.
Wenn Du es doch nicht direkt lernen willst, dann lern Python oder Ruby vorher. Ich kenne Python nicht besonders gut, habe aber schon vieles gutes darüber gehört. V.a. ist das OO-Modell durchdachter und nicht wie bei Perl einfach nachträglich rangeklatscht. Und was ich von Ruby bislang gesehen habe, sah schon ziemlich cool aus- in Japan soll es sehr populär sein, gut möglich, dass es auch hier verbreiteter wird.
-
nene dieses ganze hochsprachen zeug verblendet einem neuling nur die sicht. da denkt er sich ah ist ja voll einfach und in echt weiss er gar nicht was da unten alles so vor sich geht im prozessor keller. da soll er lieber c lernen und mal ein 4 wöchigen asm exkurs bei zeiten einschmeissen und dann hat er ein viel besseres verständnis was seine c und c++ compiler da eigentlich überhaupt machen. und kann folglich fehler viel besser verstehen und nachvollziehen.
-
Ringo1 schrieb:
da soll er lieber c lernen und mal ein 4 wöchigen asm exkurs bei zeiten einschmeissen und dann hat er ein viel besseres verständnis was seine c und c++ compiler da eigentlich überhaupt machen. und kann folglich fehler viel besser verstehen und nachvollziehen.
Und dabei soll er denkt sich nicht bekloppt denken?
Ich verstehe nicht, warum alle Leute C++ immer also so schwer darstellen ...
-
IMO solltest du mit C++ anfangen, weil man meiner Meinung nach mit C++ sauberer C programmieren kann, als in C selbst.
C hat in manchen Bereichen auch noch eine Existenzberechtigung, aber nicht auf schnellen PC's von Programmiereinsteigern, die sich dann mit fehlender Typensicherheit und globalen #define's den ganzen Sourcecode um die Ohren hauen.nene dieses ganze hochsprachen zeug verblendet einem neuling nur die sicht. da denkt er sich ah ist ja voll einfach und in echt weiss er gar nicht was da unten alles so vor sich geht im prozessor keller. da soll er lieber c lernen und mal ein 4 wöchigen asm exkurs bei zeiten einschmeissen und dann hat er ein viel besseres verständnis was seine c und c++ compiler da eigentlich überhaupt machen. und kann folglich fehler viel besser verstehen und nachvollziehen.
Ja, und? Was bringt das? Einen besseren Stil? Schnellere Programme? Es gibt hauptsächlich zwei Arten von Fehlern, die in Programmen auftreten: Das eine sind Syntaxfehler. Das andere Bugs. Und wenn ich diesen Bug in einer Hochsprache reingeschrieben habe, hilft es mir nichts ihn wieder mit Assembler aus dem Binary rauszuhacken. Dann muss ich da mit der Hochsprache wieder ran.
Mehr Geschwindigkeit bringt es auch nicht, weil ich dann immer noch nicht weiß, wieso das Programm bei einem einfachen Funktionsaufruf 2x den Konstruktor und 2x den Destruktor aufruft.
Ansonsten ist die Abstraktion viel zu groß, als dass man als Anfänger mit Assemblerkenntnissen noch nachvollziehen könnte, was da passiert und warum es passiert.mfg
-
Reyx schrieb:
Ringo1 schrieb:
da soll er lieber c lernen und mal ein 4 wöchigen asm exkurs bei zeiten einschmeissen und dann hat er ein viel besseres verständnis was seine c und c++ compiler da eigentlich überhaupt machen. und kann folglich fehler viel besser verstehen und nachvollziehen.
Und dabei soll er denkt sich nicht bekloppt denken?
Ich verstehe nicht, warum alle Leute C++ immer also so schwer darstellen ...Das schwere an C++ sind imo die vielen kleine Details auf die man achten muss. Zum Beispiel virtuelle Destruktoren bei Vererbung oder virtuelle Vererbung allgemein. In C gibt es das alles nicht und man kommt gut ohne aus.
Die einzigen Punkte wo ich am Anfang der Meinung bin das C++ besser ist, sind cout, cin anstelle der C Funktionen, da sie doch um einiges leichter zu bedienen sind. Und dann std::string, die Art wie Strings in C behandelt werden, ist doch relativ gewöhnungsbedürftig. std::vector ist auch in vielen Punkten einfach (und sicherer) als ein normales Array, da so etwas aber in keinem C++ Buch zu aller erst gelehrt wird (zumindest kenne ich keines), sondern immer die C-Arrays verwendet werden, ist das alles hinfällig und man kann sich auch erst C angucken.Ich habe auch zu erst C gelernt und bereue es nicht.
-
terraner schrieb:
weil man meiner Meinung nach mit C++ sauberer C programmieren kann, als in C selbst.
Das sehe ich genauso. Zumindest wenn du unter "sauberer" die Verwendung von string, vector, etc. verstehst.
-
c++ fan schrieb:
C ist deprecated.
-
Konrad schrieb:
Das sehe ich genauso. Zumindest wenn du unter "sauberer" die Verwendung von string, vector, etc. verstehst.
Als erstes denke ich da an globale define's. string und vector eher nicht, weil das schon c++-konzepte sind, die so in c nicht mehr verwendet werden können. ich denke da noch an namespaces. ja, es gibt keine namespaces in c, aber sie wurden doch mehr oder weniger eingeführt. man sehe sich dazu nur einmal gtk+ an.
mfg
-
Ringo1 schrieb:
nene dieses ganze hochsprachen zeug verblendet einem neuling nur die sicht. da denkt er sich ah ist ja voll einfach und in echt weiss er gar nicht was da unten alles so vor sich geht im prozessor keller.
Was glaubst du ist der Sinn von Hochsprachen? Wenns dir Spaß macht, kannst du sicher noch ein paar Lochkarten auftreiben und deine Nullen und Einsen selber stanzen ... .
Es gibt aber Leute, die wollen das Rad nicht jedes mal neu erfinden ... .