Ich habe C ++ vor 8 bis 10 Jahren ausgiebig geschrieben. Ich bin seitdem aus beruflichen Gründen zu C # gewechselt. Allerdings sehe ich von Zeit zu Zeit Aussagen wie
"Wenn Sie Zeigerreferenzen immer noch manuell verfolgen, machen Sie es falsch."
oder
"C ++ ist absolut sicher, solange Sie moderne Konzepte wie RAII verwenden und nicht wie ein wiederherstellender C-Entwickler Speicher manuell zuweisen."
Beide waren vor einem Jahrzehnt Standardverfahren. Ich habe gesehen, dass C ++ in letzter Zeit erheblich verbessert wurde; Insbesondere C ++ 0x scheint einige neue Funktionen zu haben. Was ist die beste Ressource für einen "C / old C ++" - Programmierer, um sich über "moderne" C ++ - Muster und -Praktiken zu informieren?
c++
design-patterns
c
programming-practices
c++11
GWLlosa
quelle
quelle
Antworten:
Es hat vielleicht mehr mit dem Lehrmaterial zu tun als mit den meisten anderen Dingen, aber vor 8 bis 10 Jahren schien es mir, dass sich die Art und Weise, wie die Sprache verwendet wurde, stark von der heutigen unterscheidet. Der Fokus liegt heute mehr auf der Nutzung von Vorlagen, der Typensicherheit und der generischen Programmierung, wo zuvor mehr Angst davor bestand und sich die Leute fast ausschließlich auf das C mit Objektaspekten konzentrierten.
Auch die Lehrmaterialien ändern sich. Während vor dem Standard-C ++ - Einstiegsbuch Sie durch printf, scanf usw. geführt haben, sehen Sie diese kaum in Büchern mit einem modernen Ansatz.
Einige gute Bücher gehören zu den roten Büchern. Außergewöhnliches C ++, außergewöhnliches C ++, Metaprogrammierung von C ++ - Vorlagen, modernes C ++ - Design, beschleunigtes C ++ ...
Ich denke, dass es ein gutes Beispiel sein kann, zu sehen, wo ich gerade arbeite. Ich bin mit C ++ auf eine moderne Art hierher gekommen und es scheint, dass die meisten Entwickler nicht einmal wissen, was ich tue oder warum. Erstellen von Objekten mit operator () in ihnen zum Beispiel ... Musste jedes Vorkommen von bind () verdammt kommentieren und wurde schließlich angewiesen, den gesamten Code zu verschrotten. Die wissen nicht, was Initialisierer tun ... Es war wirklich verrückt und schwierig für mich.
quelle
Um einen schnellen Überblick über die modernen Funktionen zu erhalten, die recht gut präsentiert werden, sollten Sie sich die aktuelle Präsentation von Herb Sutter "Schreiben von modernem C ++ - Code: Wie sich C ++ im Laufe der Jahre entwickelt hat" von C ++ - Funktionen unter // build / ansehen.
Er spricht darüber, warum es eine bessere Sprache als C # ist (natürlich wechselt Microsoft regelmäßig die Hosen und heute tragen sie die C ++ - Mode, damit sie dies übertreffen, nur weil sie C # als Antwort auf den Welthunger ein Jahrzehnt lang hochgespielt haben vor), aber dabei beschreibt er alle guten Bits (wie 'automatische' Speicherverwaltung und die STL-Klassen) und spricht dann über die neuen Bits aus dem C ++ 0x-Standard.
quelle