c++ lernen

  • Ersteller pfannkuchen2001
  • Erstellt am
daß man erst C lernen kann und dann das Stück ++ noch oben drauf.
Sorry, aber warum soll das nicht gehen? C++ beinhaltet C. Die deutlichste neuerung quasi (ich kann mir vorstellen, dass du das Wort nicht magst :)) ist die OOP.
Und wieso soll man nicht erst C lernen können, um sich dann ausschließlich auf die Neuerungen von C++ (wie z.B. der OOP) konzentrieren zu können?
Also mich interessiert das einfach, ich lass mich da gerne belehren.
 
weil OO ENtwuf einen ganz anderen Denk-Ansatz beinhaltet!

Ich bin mit C/Pascal/Modula groß geworden und hab heute noch Probleme diese Denke bei Java zu verdrängen! Ich falle immer wieder in den imperativen Entwurf zurück und muß mich ständig selbst kontrollieren. Das geht nicht nur mir so, also warum alte Strukturen lernen, wenn es doch längst Neue gibt?
 
@wegus,
ganz soo schlimm ist das ja nun auch nicht. ich kann mich an die ersten c++-compiler um 90 erinnern. die konnten nicht nativ übersetzen. der vorgang war immer der selbe: c++ ->c ->assembler und linken ->a.out und umbenennen. wenn man sich dann mal angesehen hat, wie c++ nach c übersetzt wurde, war die ganze sache auch schon heftig entzaubert. also vom hocker gehauen hatten mich der objektorientierte ansatz noch nie. ausserdem empfand ich grade den wiederverwendbaren code als nicht wieder zu verwenden. da tauchten dann plötzlich in projekten mit mehreren programmierern objekte auf, die ganz woanders definiert waren und man man man ... bis ich das im griff hatte ... und per case waren die einfach nicht zu greifen!

also ehrlich nen zeiger auf eine funktion legen und strukturen aufbohren, kann ich auch in c. ob ich da immer mit c++ brauche .... objekt orientierte sprachen sind modern, die industrie fordert es und es wird somit bezahlt. aber die wenigsten brauchen es! kaum ein kernelbauer (ich fürchte mach ist da eine ausnahme, weiss es aber nicht genau) wird auf die idee kommen den kern in c++ zu schreiben.
 
@hajo: da ist durchaus was wahres drann! Das Amiga OS ist z.B. recht Objektstrukturiert gewesen, ohne daß die von OO wußten ( und es war auch nur in C geschrieben).

Das was mich an Java wahnsinnig macht, ist das ich selbst triviale Dinge nicht eben imperativ erledigen darf sondern in OO gezwungen werde. OO ist toll, wenn man komplett umdenkt, aber eben nicht für Alles! Da hast Du völlig recht. Warum z.B. Micro-Controller in C++ oder Java betrieben werden müßten ist mir schleierhaft!
 
ich lege noch mal nach:

Wenn ich das richtig sehe, dann ist dein Ziel rein akademischer Natur.

Für mich gibt es 3 Alternativen:

- C/C++ | Schwierigkeitsgrad: Strong | Plattformunabhängig: aufwändig
- Java | Schwierigkeitsgrad: Mittel | Plattformunabhängig: out-of-the-box (sehr sehr viele Plattformen)
- .NET / MONO | Schwierigkeitsgrad: Mittel | Plattformunabhängig: out-of-the-box (Windows,Linux, evtl. mehr)

Fazit:
Ich würde die von C/C++ abraten. Das ist eher was für Leute die müssen und nicht wollen.
Die modernen Entwicklungen spielen sich in Java/.NET ab. Hier werden die neuen Konzepte/Frameworks/Ideen verwirklicht. Wenn man also, gerade aus akademischem Grund, sich mit Software-Entwicklung beschäft, dann nimm eins der beiden.

Gruß
Oli, (Beruf: Software-Entwickler)


Schwierigkeitsgrad: damit meine ich nicht die Syntax der Sprache. hier sehe ich wenig unterschied. der punkt ist, dass c/c++ viele falllen enthält mit denen man stunden verschwendet (beispiel: linker fehler, wenn man versucht das projekt in libs aufzuteilen).
 
der kollege, der eingangs die frage stellte, ist anfänger der programmierung. ich würde dem keine der von dir erwähnten sprachen aufs auge drücken. soll er sich erstmal nen kopf machen, warum repeat ... until oder do ... while zur unsauberen programmierung gehören aber auch nicht immer umgangen werden können :)

danach kann man sich mit objekten, netzen usw. auseinander setzen. sinn und unsinn von request brokern. und dann kann man verstehen, was mit .net eigentlich gemeint ist. eine entwicklungsumgebung für c# garantiert noch lange nicht für sinnige programme. :)
 
com_hajo schrieb:
warum repeat ... until oder do ... while zur unsauberen programmierung gehören

Na das würd ich jetzt auch gern wissen ! Erzähl...
 
while => unsauber?

Schleifen sind elemtarer bestandteil heutiger Programmiersprachen soviel ich weiß...

\\EDIT: Das kommt davon, wenn man 10 min (inkl. Essen, duschen, etc.) braucht um einen solchen Post zu schreiben ^^
 
der erste durchlauf der schleife ist unkontrolliert, weil die bedingung erst am ausgang überprüft wird. man kann das aber auch nicht umgehen z.b. tastaturabfragen. war bei uns genauso verpönt wie goto :)

@d@tenmaulwurf,
nicht while ... do sondern do ... while.
 
com_hajo schrieb:
und dann kann man verstehen, was mit .net eigentlich gemeint ist.

das stimmt natürlich. ich meinte C# (das liegt daran, dass ich java entwickler bin ;) )
 
com_hajo schrieb:
man kann das aber auch nicht umgehen

:kopfkratz:

do..while ist das Gegenstück zu while..do

in nahezu jeder Sprache gibt es die Möglichkeit am Anfang oder Ende einer Schleife zu prüfen, je nachdem wann die Prüfung relevant ist! Das ist ne Frage der Ausdrucksmöglichkeit und sicher nur dann unsauber, wenn man die Invariante am Anfang nicht richtig initialisiert! Das ist genauso ein Mythos, wie die Verteufelung von GOTO! An den richtigen Stellen angewandt, ist es durchasu sinnvoll!
 
in bestimmten situationen kann alles mögliche sinnvoll sein (break in einer schleife usw). aber wir mussten uns dann eine sehr gute begründung einfallen lassen. und das finde ich auch gerade bei anfängern sinnvoll. die sollen schon wissen was sie treiben. und wenn es nicht notwendig ist, sollen sie sich etwas anderes einfallen lassen.
 
com_hajo schrieb:
in bestimmten situationen kann alles mögliche sinnvoll sein (break in einer schleife usw). aber wir mussten uns dann eine sehr gute begründung einfallen lassen. und das finde ich auch gerade bei anfängern sinnvoll. die sollen schon wissen was sie treiben. und wenn es nicht notwendig ist, sollen sie sich etwas anderes einfallen lassen.


ja, das stimmt! Das führt sonst zu lausig validiertem Code und meist fehlt auch schon der Ansatz bei der Fehlersuche! SO ist das für mich o.k.! Für den Alltag fänd ich es übertrieben!
 
naja, wir wurden auf einiges gedrillt, das is im hinterkopf und man macht sich da eigentlich auch gar keine gedanken mehr drüber. bin selber immer wieder überrascht, dass man das nach all den jahren noch parat hat.

ich wollte aber auch nicht klugscheissen oder dogmatisch sein. wenn das so rüber gekommen ist, entschuldigt bitte.
 
pfannkuchen2001 schrieb:
na dann mal los!:jaja: Gruß Hannes
#

Ich möchte noch mal eine Lanze für Ruby schlagen.

Wenn man mit Spass einfach programmieren lernen möchte und gleich auch objektorientiertes programmieren empfehle ich das folgende Buch und Ruby. Ruby läuft auch auf jeder Plattform und ist kostenlos. Na gut es ist eine Interpreter Sprache aber zum lernen ok.

Buch: Learn to Program von Chris Pine Ist ein wirklich gutes einstiegsbuch. Es ist aus der Serie http://www.pragmaticprogrammer.com/

Im Anschluss kann man sich auch gut mit Rails beschäftigen, dem Web Framework in Ruby.

Ruby mach irgendwie Spass, ich habe schon Pascal, C, C++, Perl gelernt und lerne im Moment wenn ich Zeit habe Ruby.

Dazu ein guter Editor und man kann auf dem Mac loslegen. Mein Tipp ohne Werbung machen zu wollen ist TextMate oder Aquaemacs. Viele Grüße Tom!​
 
ok, danke, ich werd mich mal informieren!

-->endlich mal was zum thema;)


Hannes
 
Zurück
Oben Unten