2010-11-30 2 views
11

最近私は自分自身にC++を勉強せざるを得なくなり、ちょうどHerbert SchildtのC++:The Complete Referenceという本を読み終えたところです。私は本が好きで、多かれ少なかれ大きな写真があると思います。私が知ったのは、私が学んだ素材を使用してコードするものを他の人とチェックしようとすると、通常はSTLの方法ではなく、非慣用的なものと見なされ、より安全で簡単なものになります(もちろん、 STLライブラリとBoostライブラリをカバーしています)。慣用のC++コードを書く方法を学ぶ

私は質問したいと思います:よいC++プログラムのパターンを知るには、どのような情報源がありますか? C++でCパターンを繰り返すだけでなく、C++の基本パターンを知ることができますか?

私は特にSTLとBoostのものを含むソースに興味があります。

+3

Herbert SchildtのC++の書籍は、C++コミュニティで**推奨されていません**(http://stackoverflow.com/questions/391091/should-i-not-use-a-herb-schildt-book- 〜から学ぶ)。あなたは、彼らが話していることを実際に知っている人々によって[C++の本を読む]はるかに良いです(http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) 。 –

+0

ああ、少年...私は本を買う前にこれを読むことができたらいいなあ。 :Pまあ、私は他の本を手に入れようとします。 –

+0

なぜSTLとBoostのドキュメントはありませんか? – Javier

答えて

7

あなたは、私が特に推薦するあなたの目的のためにThe Definitive C++ Book Guide and List

をチェックアウトするwnatかもしれません:

これらは特に順序が決められておらず、それらの間に何かを読んでコード化することもできます。

(注意:ブースト帳は日のうち少しかもしれません@ジョンDiblingで述べたように、私はその1つの自分の経験を持っていない)

+3

全体で+1ですが、私はブーストブックをお勧めできません。私はそれが絶望的に​​時代遅れであることがわかり、私の実際のニーズには当てはまりませんでした。 –

+0

ありがとう、答えを編集しました:) – Palmik

+0

最初の2つ。その後、StroustrupのC++プログラミング言語が参考になるようにする必要があります。 –

3

あなたはハーバート・シルトの本を完了しているので、あなたは読むことができますBjarne Stroustrup(The C++ Programming Language)またはBruce Eckelの本(Thinking in C++ Part 1 & Part 2)の本。 Eckelの本はインターネット上で自由に入手でき、Part-2ではSTLに関する話があります。

+0

+1、エッケルの本は本当に良いです – Javier

+0

読書と基本的な学習のために、はい、しかし、彼らはまた、少し古くからのものです。 –

1

C++の慣用コードを書く方法を学ぶ最も良い方法は、C++コードを記述し、高度なC++開発者がコードを見直すことです。 また、最も有名なC++の本も読んでください(Scott MeyersのEffective C++は良いスタートです)。現代のC++ Designは良いC++コードを書く方法を学ぶのに悪い本ですが、発見して理解したいジェネリックプログラミングの概念)。

さらに、STLについて多くのドキュメントを読んで、ブーストしてイテレータについてたくさん学ぶべきです。イテレータはSTLを使用する(そしてコンテナとアルゴリズムの実装を強化する)鍵であり、使用方法がわからない場合は、C++の慣用コードを記述しません。これまで

1

Accelerated C++は、最初からSTLを使用するC++の紹介です。それは長い本ではありませんが、それはあなたの状況のIMOの誰かのための "密集した"と素晴らしい選択肢です。 C++の私の経験は、私が読んだときにあなたのものと似ていました。

1

私は(も)お勧めします:

  • Effective C++、スティーブ・マイヤーズEffective STLを。彼らは消化しやすいですが、非常に貴重です。
  • Code Complete(1993年版は安く入手できますが、それほど違いはありません)。それは時間がかかりますが、フィールド全体に渡って、からプログラマーになることを意味します。forループがどのように見えるか (それが短ければそれが良いでしょう - それはそれがそれを置くのが難しいほど多くの基礎を覆う方法です)。
    • コードは、事実を知っている(しかし、我々はまだ腸の感じによってによって取得するために管理する)
  • C++ FAQ Lite/C++ FAQがあり
  • 妥協である:それは非常によく2点を説明するので、私はそれを大切に。
  • 私はRobert GlassによってFacts and Fallaciesを投げます。あなたの要求にはうまく対応していませんが、それを読んでください。

それはあなたが他の人のコードに不満があるのは当然です。これはプログラミングにとって典型的なことです。ちょうど自分のコードの5年前は合計n00bで書かれています。それはC++のためにはっきりしているかもしれません。なぜなら、それは異なるスタイルに対応しており、多くの場合、ギルドラインを超えて自由になります(「そうです」)。

まだ、既存のコード(あなたや他の人)を悩ませ、それを改善する方法を検討してください。また、なぜそれは時々助けになる方法を考え出す。ドメインの経験を持つ誰かが、これは明白なより優れていたどのような状況の下で説得力のある説明して、私もの間埋もれまだどこかで、 -


は(私は誰もが愚かと不合理が、これはどのようにチャイムう少数TheDailyWTF年代を覚えています溶液)。

関連する問題