2009-06-02 9 views
8

Ich habe C++ in mehr als 8 Jahren nicht berührt. Ich musste vor kurzem C++ Code reparieren, und obwohl ich noch Code schreiben kann, fühle ich mich wie ich nicht mehr zum Lager der C++ Programmierer gehört. Ich kenne keine Bibliotheken, habe nicht auf die neuen Sprachfunktionen/Verbesserungen/Best Practices geachtet.Erlernen Sie moderne C++ - Ressourcen?

Qt Creator und Qt scheint wie ein nettes Toolset für das, was ich jetzt brauche, da ich mich hauptsächlich für Cross-Plattform-Entwicklung interessiert.

Was wäre eine gute Ressource für jemanden wie mich, C++ und Best Practices in kürzester Zeit schnell neu zu lernen?

Ich habe in der Zwischenzeit hauptsächlich Java und Lispeln gemacht, mit kurzen Schritten zu C, Flex, Scala und Haskell.

+0

Hier finden Sie einige gute Ideen: http://StackOverflow.com/questions/777764/what-modern-c-Libraries-Sould-Be-in-My-Toolbox/777779 –

+0

Bitte beachten Sie, einige dieser Antworten sind nein länger relevant im Jahr 2017! Die Sprache hat in den letzten 8 Jahren einen langen Weg zurückgelegt, und einige der hier vorgeschlagenen Ressourcen sind der Frage um fast ein Jahrzehnt vorausgegangen. – einpoklum

Antwort

6

Lernen Sie die S.T.template L.ibrary kennen.

Lernen Sie Boost kennen, wenn Sie wirklich auf dem neuesten Stand sind.

Lesen Sie die Bücher "effektive C++" und "effektive STL" von Scott Meyers.

Lesen Sie die "C++ faq lite".

(nicht necsissarily in dieser Reihenfolge)

1

Erste vertraut wieder mit Zeigern, Referenzen usw.

Dann würde ich nur mit Qt bleiben. Qt's Dokumentation Regeln und IIRC, Qt Container sind noch effizienter als STL's. Die Tatsache, dass der Code für Ihre Qt-GUI dann noch eleganter ist, trägt ebenfalls zur Attraktivität von Qt bei. Fügen Sie der Tatsache hinzu, dass die Qt-Dokumentation auch viele einfache und einige relativ fortgeschrittene Code-Beispiele enthält, mit denen Sie spielen können, und Sie sollten in kürzester Zeit wieder auf dem neuesten Stand sein.

Es wäre nicht weh zu wissen/verwenden STL/Boost obwohl. Aber bleib (weit weg) von GTK.

+1

vergessen Sie nicht über Zeiger. Es ist wie auf einem Fahrrad, man landet ein paar Mal auf dem Boden und vergisst es nie. Kommen Sie, um darüber nachzudenken, Sie erhalten auch die gleiche Frischluftfreiheit ... – Javier

+1

Ganz zu schweigen: vergessen Sie bloße Zeiger. Intelligente Zeiger sind so viel besser. (OK, ich übertreibe ein wenig, aber intelligente Zeiger haben Möglichkeiten, den nackten Zeiger zurück zu bekommen.) –

+2

Wie finden Sie heraus, dass Qt-Container effizienter als STL-Container sind? –

2

Wenn Sie in GUI-Entwicklung sind, gehen Sie mit Qt. Es ist das Beste da draußen, und der Preis stimmt. Es weicht etwas von harten Standards ab; aber nicht ohne Grund, und trotzdem macht es einige Anstrengungen, ähnliche Codierungsstile zu verwenden, wo es angemessen ist.

Wenn Sie mehr in CLI- oder Serverprozesse investieren, kann Qt immer noch helfen. aber es hat keinen so großen Vorteil. Da wäre es produktiver mit STL und (speziell) Boost zu gehen.

14

lesen:

Das sind Referenzen Bücher über C++ die alle modernen effektiven Praktiken, Philosophien und Kenntnisse über C++ wieder aufnehmen (ohne in Meta-Programmierungskram zu gehen).

Dann, wenn Sie weiter gehen wollen, lesen:

Über Bibliotheken: zuerst über die STL lernen und lernen, Boost als eine "Standard" STL-Erweiterung zu verwenden.

+0

+1 Für das moderne C++ Design. Ich bin ein Loki-Lib-Entwickler :) –

+0

+1 für effektive C++. Es ist der Goldstandard und ehrlich, wenn ich für ein Team verantwortlich wäre, würde ich sicherstellen, dass jeder es liest. – rlbond

+0

Die beste Liste von C++ Büchern, die ich bisher gesehen habe. Ich wünschte, jeder C++ - Entwickler würde jedes einzelne Cover lesen, um es zu verdecken. –

1

Code-Code und dann Code mehr!

Probieren Sie Projekte aus, in denen Sie Techniken aus Büchern kombinieren. Wie in anderen Beiträgen erwähnt, gibt es eine Menge guter Bücher über C++ - Programmierung. Durch die Anwendung von Designmustern und Techniken aus diesen Büchern in echte Codiersituationen werden Sie schnell wieder auf den richtigen Weg gebracht.

Auch, solange Sie für Erfahrung codieren, haben Sie keine Angst, eine Beute von verschiedenen Bibliotheken zu versuchen. Multitude ist gut, da es Ihnen hilft, ein Gefühl dafür zu bekommen, wie verschiedene Bibliotheken gebaut werden, und es hilft Ihnen, die Bibliotheken zu finden, die Sie später für reale Projekte verwenden wollen.

2

Werfen Sie einen Blick auf A.König und B.Moos Accelerated C++.

Die anderen genannten Bücher sind gute Bücher, aber sie werden viel Zeit brauchen, um sie alle zu lesen. AC++ lehrt modernes C++ (im Gegensatz zu historischem C++ - es geht nicht um Vorlagen-Zauberei).

Das neueste Buch von B.Stroustrup, Programming -- Principles and Practice Using C++, scheint (ich habe es noch nicht gelesen) auch interessant.

Verwandte Themen