C++ für C-Programmierer
-
Hi,
ich programmiere jetzt schon länger in C und würde jetzt gerne in C++ einsteigen.
Leider sind die meisten Tutorials für komplette Anfänger konzipiert, d.h. es wird erklärt, welche Datentypen es gibt, was ein int ist usw., das brauche ich aber eben nicht.
Ich brächte eine Auflistung, was die Unterschiede zwischen C und C++ sind.
Hat jemand ein Tutorial, das speziell für C-Entwickler konzipiert ist?
-
Zyniker schrieb:
Leider sind die meisten Tutorials für komplette Anfänger konzipiert
Da muss ich dich korrigieren
C++ Tutorials sind von Vollpfosten für Vollpfosten konzipiert.Zyniker schrieb:
Ich brächte eine Auflistung, was die Unterschiede zwischen C und C++ sind.
Hmm, das macht keinen Sinn. Es sind ja zwei verschiedene Sprachen. Haben nichts miteinander zu tun.
Zyniker schrieb:
Hat jemand ein Tutorial, das speziell für C-Entwickler konzipiert ist?
Du musst gute Bücher kaufen, sonst lernst du - mit ziemlicher Sicherheit - C mit cout.
-
Mhh... soweit ich weiß, ist C++ die Weiterentwicklung von C, also andersrum ist C ein Unterteil von C++.
-
Nein, C++ ist mittlerweile keine "Weiterentwicklung" von C. Als Tip: The C++ Programming Language. Wenn du weisst, was for-Schleifen sind, dann kannst du diese kleinen Teile ueberspringen.
-
Zyniker schrieb:
Mhh... soweit ich weiß, ist C++ die Weiterentwicklung von C, also andersrum ist C ein Unterteil von C++.
Ja, C++ besitzt eine kleine C-Kategorie.
-
Dann würde ich mir wohl mal "Thinking in C++" angucken. Das geht nämlich von einer ganz anderen Seite an C++ dran, als viele andere Bücher. Da geht es erst einmal 100 Seiten mit objektorientiertem Design los* (was dir vermutlich schon aus C bekannt ist, aber dort oft nicht so streng durchgezogen wird). Irgendwann kommen dann natürlich auch Basisdatentypen und Kontrollstrukturen dran (ist schließlich immer noch ein Anfängerbuch), aber das kannst du dann ja querlesen (Das Kapitel heißt passenderweise "The C in C++"
). Der zweite Teil beschäftigt sich dann sogar exklusiv mit der STL.Das ist sicherlich sehr gut für einen C-Programmierer, denn es ist keine gute Idee, in C++ zu versuchen, C zu programmieren. So kommst du gar nicht in Versuchung, da dir, wenn du dem Buch folgst, fast gar kein C gezeigt wird. Komm eben bloß nicht in Versuchung, irgendetwas mit den C-Mitteln zu lösen, mit denen du schon gut umgehen kannst. Wenn du eine dynamisches Array brauchst, ist das eben kein malloc. Und auch kein new, das du eventuell in irgendwelchen C/C++ Übersetzungstabellen findest! Es ist vector, auch wenn's ungewohnt ist. Diese Denkweise musst du lernen. Die Header stdio.h, string.h (nicht zu verwechseln mit string!), locale.h, stdarg.h und (mit kleinen Ausnahmen) auch stdlib.h sollten für dich vorerst tabu sein (ihre C++-Äquivalente, also ohne '.h' am Ende, stattdessen mit 'c' vorne, natürlich ebenso).
*: "Hello World" kommt auf Seite 103!
-
knivil schrieb:
Nein, C++ ist mittlerweile keine "Weiterentwicklung" von C. Als Tip: The C++ Programming Language. Wenn du weisst, was for-Schleifen sind, dann kannst du diese kleinen Teile ueberspringen.
Nein, kann man nicht. Denn selbst da gibt es Unterschiede, sogar bei deinem Beispiel
(Du weißt sicher, welcher es ist)
-
Was haltet ihr von diesem Wikibook:
http://de.wikibooks.org/wiki/C%2B%2B
?
-
Zyniker schrieb:
Was haltet ihr von diesem Wikibook:
http://de.wikibooks.org/wiki/C%2B%2B
?Ziemlich unvollständig und ziemlich genau das, was du gesagt hast, was du nicht suchst. Allgemein kannst du alles vergessen, was von Laien geschrieben wurde.
-
Dann hast du bestimmt einen besseren Link?
-
probiers mit dem hier:
http://www.cpp-tutor.de/cpp/hinweise.htmlhab auch jahrelang mit C programmiert und dieses Tut war mein Einstieg in die C++ Welt.
Danach hab ich mir noch diese 2 Bücher gegönnt:
+ Die C++-Programmiersprache (Bjarne Stroustrup)
+ Effektiv C++ programmieren (Scott Meyers)
-
Zyniker schrieb:
Dann hast du bestimmt einen besseren Link?
Ich habe doch schon Thinking in C++ genannt. Aber du hast anscheinend weder gegoogelt noch in die Bücherliste des Forums geschaut um zu sehen, dass das ein Gratisbuch ist. Wobei das sowieso etwas billig von dir ist, dass es unbedingt nichts kosten darf
. 40 Euro für eine Sprache fürs Leben sind nun wirklich nicht viel.
-
Danke.
Ich werde zusätzlich noch dieses "Volkard"-Tutorial durcharbeiten.
-
Zyniker schrieb:
Leider sind die meisten Tutorials für komplette Anfänger konzipiert,
Sie sind auch mest von Anfängern konzipiert.
Zyniker schrieb:
Ich brächte eine Auflistung, was die Unterschiede zwischen C und C++ sind.
Eine Auflistung wird es wahrschienlich nicht tun. Du musst auch wissen, wie man die neuen Sprachmittel effektiv einsetzt. Das erschließt sich einem nicht sofort von selbst. Das muss man dazu lernen.
Zyniker schrieb:
Hat jemand ein Tutorial, das speziell für C-Entwickler konzipiert ist?
Sowas kenne ich leider nicht. Ich habe als "Umsteiger" mit Stroustrups Buch angefangen. Und das fand ich eigentlich okay vom Tempo her. Mit einfachen Programmier-Basics hält er sich nicht auf. Ist eher an Leute gerichtet, die schon programmiert haben. Und sonst machte "Accelrated C++" einen guten Eindruck beim Durchstöbern auf mich. Kompakte Einführung. Fängt zwar von 0 an, geht aber recht zügig weiter. Was ich auch noch empfehlen kann ist "Effective C++" von Scott Meyers. siehe http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list
-
Hey ho,
ich bin gerade dabei von C auf C++ umzusteigen!

Kennst du dieses \1: http://www.rrzn.uni-hannover.de/buecher.html?no_cache=1&tx_rrznbuecher_pi1[showUid]=69
Das kannst du sicher auch an einer Uni in deiner Nähe erwerben, kosten so ca 5€.Erstmal zu mir und warum ich total begeistert von dem Script bin:
Ich habe im Rahmen meines Mathematik Studiums in einem zweiwöchigen Ferienseminar C lernen müssen und später viele Anwendungsaufgabe in der Uni abgeben müssen.
Somit habe ich mich in C schon richtig gut zurecht gefunden, Pointer, Structs, dynamische Speicher, Präprozessoren, usw ... (würde mich als weit fortgeschritten einstufen
)
Ich muss nur noch meine Arbeit abgeben und bin dann fertig,
aber dafür muss ich einen Teil implementieren. Ich habe ein bereits funktionsfähiges C Programm, aber das muss noch etwas mehr leisten. Nun stehe ich vor dem Wahl: einen C-Code mit undurchsichtigen Structs erstellen, indem ich mich sicher verlaufe
oder auf die superintelligente Klassenfunktion von C++ zurückgreifen.Das Script erklärt mir nun von Anfang an die Unterschiede zu C und warum das in C++ plötzlich so aussieht wie es aussieht. Das ist super!! So einfach lässt sich C++ erklären, wenn man auf bereits vorhandenes Wissen zurückgreifen kann.
Ständig sitzt ich vor dem Script und staune "wahnsinn, wie klug das in C++ jetzt ist" oder "stimmt, genau das fand ich in C immer lästig" oder "woooow, diese Werkzeuge sind so mächtig"
hehe, das macht Spaß!

PS: Das Thema hat die Halbwertszeit noch nicht überschritten und ich bin halt gerade genau in der Situation hier noch was mitzureden

-
in einem zweiwöchigen Ferienseminar C lernen müssen
Das Zeitintervall ist lachhaft klein.
würde mich als weit fortgeschritten einstufen
Ich würde dich als absoluten Anfänger einstufen, schon von der Art wie du daher redest.
hehe, das macht Spaß!
Man lernt C++ nicht in ein paar Wochen, in denen man zuerst ein kleines Ferienseminar besucht und anschließend ein Skript durcharbeitet. Da muss ich dich enttäuschen. Das wird sehr viel mehr Zeit und zumindest ein gutes Grundlagenbuch beanspruchen, was du dir offenbar nicht gönnen wolltest.
Edit: Mein Gott! Die nutzen ja noch GCC 2.6.3! Der wurde November 1994 veröffentlicht!
Und die "Expertenmeinung" besteht aus denen von Professoren.
-
@Sone:
schön, wenns für dich so lachhaft daherkommt. So ein Ferienseminar war der Einstieg, täglich 2h Vorlesung + 5h Übung, jede Menge Aufgaben. Mehr Zeit geben sie uns eben nicht, das Hauptfach ist eben wichtiger ...
Und jetzt kommst! Ich habe nicht gestern angefangen zu studieren und zu programmieren. In der Zeit habe ich eine Menge von Algorithmen implementieren müssen. Natürlich mathematischer Natur.
Und weißt du was? Meine C Codes sind sauer, übersichtlich und funktionsorientiert. Warum? Weil ich inzwischen routiniert bin und alles anwenden und nutzen kann, was ich brauche. Was brauche ich? Gute Implementationen meines Forschungsthemas, mehr nicht. Meine Resultate sind wichtig, nicht mein Code.Warum ich das so frei schnauze geschrieben habe: um zu erklären warum ich das Script toll finde. Dafür werde ich jetzt also von einem pimp dumm angemacht

Und die "Expertenmeinung" besteht aus denen von Professoren.
Ich mag lieber kluge, analytisch denkende Menschen um mich haben. Dein Kommentar hat dich absolut disqualifiziert

zumindest ein gutes Grundlagenbuch beanspruchen
Viellicht magst du dich dazu noch genauer erklären. Dann hättest du wenigstens noch was Produktives von dir gegeben.
-
Meine C Codes sind sauer, übersichtlich und funktionsorientiert.
Von sich selbst halten kann jeder viel. Den Fehler musste ich selbst machen.
um zu erklären warum ich das Script toll finde.
Deine Meinung ist völlig unwichtig. Du bist bei weitem nicht kompetent genug, als dass du ein Skript derart hochstufen kannst.
Ich mag lieber kluge, analytisch denkende Menschen um mich haben.
Dann bist du hier willkommen. Professoren können vielleicht schön reden, aber das heißt nichts.
Viellicht magst du dich dazu noch genauer erklären.
Ich habe nicht vor, dir irgendetwas zu erklären.
Ich bin von den ins Netz gestellten Ergänzungen enttäuscht.
-
Bravo, deine herablassende Art ist weniger schlimm (man beachte die Relation)!

Deine Meinung ist völlig unwichtig.
Fine Fine.
Meinung ist unerwünscht. Check.
Ich habe nicht vor, dir irgendetwas zu erklären.
Ich werde auch nicht drum betteln.
Aber vielleicht magst du der interessiert mitlesenden Gemeinde mitteilen, womit man am besten von C nach C++ umsteigt, dann hätte unser Disput auch noch was für die Nachwelt hinterlassen.
-
Es gibt bekanntlich einen Unterschied zwischen subtiler und expliziter Herablassung.
womit man am besten von C nach C++ umsteigt
Wie man auch am Besten C++ beginnt.
Man liest ein Grundlagenbuch, dass alle Grundlagen ausführlich behandelt.Das ist aber schon praktisch selbstredend und wurde schon in diesem Thread angesprochen.