2009-06-02 7 views
8

私はC++に8年以上触れていません。私は最近、いくつかのC++コードを修正しなければなりませんでしたが、まだコード化することはできますが、C++プログラマーのキャンプに属していないように感じます。私はライブラリを知らず、新しい言語機能/改善/ベストプラクティスに注意を払っていませんでした。最新のC++リソースを再学習しますか?

Qt CreatorとQtは、私が今必要とするツールセットのように思えます。なぜなら、主にクロスプラットフォーム開発に興味があるからです。

私のような人にとって、短時間でC++やベストプラクティスをすばやく再学習するには、どのような優れたリソースがありますか?

私はC、flex、Scala、Haskellへの短い進歩を伴って、ほとんどがjavaとcommon lispをやっています。

+0

ここにいくつかの良いアイデアがあります:http://stackoverflow.com/questions/777764/what-modern-c-libraries-should-be-in-my-toolbox/777779 –

+0

これらの回答のいくつかは、 2017年より長いこの言語は過去8年間で長い道のりを歩んできました。ここで提案されたリソースのいくつかは、この10年近くの質問に先立っています。 – einpoklum

答えて

6

S.tandard T.emplate L.ibraryについて知ること。

あなたが本当に最先端にいれば、ブーストを知ることができます。

「効果的なC++」と「効果的なSTL」という本は、スコットマイヤーによって読まれました。

"C++ faq lite"をお読みください。

(ないnecsissarilyその順序で)

1

まずなどポインタ、参照、

その後、私はちょうどQtのに固執するだろうと再び慣れます。 QtのドキュメントルールとIIRC、QtのコンテナはSTLよりも効率的です。あなたのQt GUI用のコードがより洗練されているという事実も、Qtの魅力をさらに高めます。 Qtのドキュメントには、多くのシンプルなコード例と比較的高度なコード例が含まれているので、時間をかけずにもう一度やり直す必要があります。

STL /ブーストを知っていても使用しても痛いことはありません。しかし、GTKから離れて(遠くに)いてください。

+1

あなたはポインタについて忘れないでください。それは二輪車に乗るようなもので、数回地面にぶつかり、決して忘れることはありません。それについて考えるようになって、あなたも同じ新鮮な空気の自由を得る... – Javier

+1

言及しないでください:裸のポインタについて忘れてください。スマートポインタはずっと優れています。 (OK、私はちょっと誇張していますが、スマートポインタには裸のポインタを戻す方法があります) –

+2

QtのコンテナがSTLのコンテナよりも効率的であると判断する方法を教えてください。 –

2

GUI開発の場合は、Qtをご利用ください。それは最高ですが、価格は正しいです。これはハードな基準から多少ずれます。理由がないわけではありませんが、そうであっても、必要に応じて同様のコーディングスタイルを使用するよう努めています。

CLIやサーバープロセスの方がいれば、Qtは依然として役に立ちます。それほど大きな利点はありません。そこでは、STLと(特別に)Boostと一緒に行くほうが生産的になるでしょう。

14

読む:

これらはCの参照書籍です++ Meta-Programmationのようなものを使わずに、C++の現代的な有効なすべてのプラチナ、哲学、知識を再開します。

次にあなたが遠くに行きたい場合は、読み: -

:最初のSTL学びます「標準」STL拡張としてBoostを使用する方法を学びます。

+0

+1現代のC++デザインのために。 私はloki-libの開発者です:) –

+0

+1 for Effective C++。それは私がチームを担当していれば、誰もがそれを読むことができるようにするのは、ゴールデンスタンダードであり正直なところです。 – rlbond

+0

私はまだ見たC++の本のベストリスト。私はすべてのC++開発者がこれらのカバーをそれぞれカバーすることを望みます。 –

1

コードコードを入力してコードを追加してください!

本から取得する手法を混在させてプロジェクトを実行してください。他の記事でも触れられているように、C++プログラミングの良い本がたくさんあります。これらの書籍のデザインパターンとテクニックを実際のコーディングの状況に適用すると、すぐに実を結ぶことができます。

また、経験をコーディングしている限り、さまざまなライブラリを試すことを恐れないでください。 Multitudeは、異なるライブラリがどのように構築されているのかを理解するのに役立ち、後で実際のプロジェクトで使用するライブラリを見つけるのにも役立ちます。

2

A.KoenigとB.Moo's Accelerated C++をご覧ください。

他の本は良い本ですが、それらをすべて読むには多くの時間が必要です。 AC++は現代のC++を教えています(歴史的なC++とは対照的に、テンプレート魔法ではありません)。

B.Stroustrupの最新の本、Programming -- Principles and Practice Using C++は、まだ興味深いと思われます。