私はvC++開発者ですが、私はC++を学ぶのに多くの時間を費やしています。vC++開発者がよく理解しておくべき概念は何ですか?
答えて
、.NETをお勧めします、MFCおよびATL。
あなたは本当に言語を知っている必要があります。もう1つのメリットは、クロスプラットフォームライブラリです。 C++は、GUIまたはWin32プログラミングに関するものではありません。 boost、QT、wxWidgets(いくつかのXMLパーサーライブラリかもしれません)のようなライブラリを使ってMulti-Platformアプリケーションを書くことができます。
Visual C++はC++アプリケーションを開発するための優れたIDEであり、MicrosoftはVisual C++をより標準に準拠させるために努力しています。方言のない標準言語(MS方言)を学ぶことで、Rapid Development Environmentとマルチプラットフォームの移植性の利点が得られます。そこには、Windows、Linux、Unix、またはMac OSで同等に機能する多くの抽象ライブラリがあります。デバッガはVC++の優れたアプリケーションですが、まずは最初のことではありません。アプリケーションの単体テストを作成してみてください。彼らはあなたがテストされた(またはデバッグされている可能性があります:)コードの他の部分を壊していないことを次の修正で保証します。
MFCまたはATLを最初から習得しようとしないでください.STLについて理解してください。 MFCは古く、新しいバージョンはATLのラッパーです。 ATLはSTL-idioms(と時にはSTL自体)とWinAPIと結婚しようとする、奇妙なlibです。しかし、背後にあることを知らずにATLのコンセプトを使用すると、あなたも非生産的になります。いくつかのATLイディオムは非常に疑わしいので、ブーストやlibsのほうが良いでしょう。
最も重要なことは、言語の哲学と概念です。私はあなたが言語に飛び込むと、いくつかの深刻な本を読むことをお勧め:
- Design & Evolution of C++ by B. Stroustrup
- Inside the C++ Object Model by S. Lippman
- Design Patterns: Elements of Reusable Object-Oriented Software by GoF
- C++ Gotchas: Avoiding Common Problems in Coding and Design by S. Dewhurst
- Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions by. H. Sutter
- More Exceptional C++: 40 New Engineering Puzzles, Programming Problems, and Solutions by H. Sutter
- Exceptional C++ Style: 40 New Engineering Puzzles, Programming Problems, and Solutions by H. Sutter
ときは、ここであなたは次の本はあなたのうちの第一人者を行います非常に高度なC++開発者 次のようになります。
- Modern C++ Design: Generic Programming and Design Patterns Applied by A. Alexandrescu
- C++ Templates: The Complete Guide by by D. Vandevoorde, N. Josuttis
- C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond by D. Abrahams, A. Gurtovoy
- Large-Scale C++ Software Design by J. Lakos
を重要なものを覚えてルール:質問がある場合は、ISO C++標準(つまり、標準文書)を作成します。そうすることで、他の多くの同様のことが起こります。これにより、言語デザインについて考えることができます。
この本のリストがお役に立てば幸いです。これらの書籍のコンセプトは、よく設計された最新のC++フレームワークですべて見ることができます。種類に関して
、
Ovanes
Scott Meyersの本「Effective C++」、「Effective C++」、「Effective STL」を最初のリストに追加したいと思います。 –
MFCライブラリを学習する必要があります。私の意見では、特にGUIアプリケーションを作成するための、うまい良いlibです。
IMHO .netとwindowsフォームまたはwxWidgetsはかなり良い選択です - MFCの痛みは*** –
であり、MFCは死んでいます。何かを学ぶつもりなら、新しいことを学んでください。 –
Cleary、MFCは時間の無駄です。 C++でGUIをしたいのであれば、QTを学ぶ必要があります。 – anno
最も重要なのは、デバッガです。
あなたがMFC/ATL開発に参加している場合、それらのライブラリはコースから外れています。
デバッグ中に例外を有効にする方法、ディスクパスからデバッグシンボルをロードする方法などは、常に大きな助けになります。
実際、どのような種類のプロジェクトを担当しているかによって実際には異なります。
いくつかの混合モード開発を行っている場合、.NET相互運用性を学ぶことができます。
COMコンポーネントを開発する場合は、ATL + COMを学ぶことができます。
他にもいくつかのフレームワークがありますが、私が言ったように、それは実際にあなたがやっていることに依存しています。
標準テンプレートライブラリについて学んでください。 Boost Librariesも見てください。これらの両方(特にSTL)はあなたに多くの時間を節約し、きれいな見た目のコードを作成する必要があります。
STLとブーストは、なぜですか? :)また、Win32 APIを学ぶ必要があります。
MFCはまだサポートされていますが、IMHOはC#/ XAMLについて深刻な挑戦者ではありません。
MFCが古すぎるとわかりました。私は2000年代初めに仕事をしてきましたが、面白いことがいくつかありますが、実際にはこれはもうやり直すべき方法ではありません。
私はQtが好きでした。私の意見では、GUIライブラリを使用したいと思っているのであれば、私は確かにQtを使うでしょう。 – yesraaj
私は同意しますが、絶対的な意味では、Windows GUIの場合はC#/ XAMLになります。 –
私は90年代初期にMFCで働いていました。 OTOHでは、小さなMFCアプリをすぐに稼働させるのは非常に簡単ですし、大規模なプロジェクトで80%になるまでは厄介なビットが得られず、次の80%の時間を費やさなければならないことがわかりますMFCはその問題を回避する。 –
私はthe .net CLI frameworkが、あなたがPC上でGUIアプリケーションを開発しているかどうかに慣れ親しむために非常に便利なフレームワークになると思います。
wxWidgetsは、GUI開発のためのもう1つの優れたフレームワークです(実際には、他にも非常に便利なビットがたくさんあります)。
あなたはアプリをどのように開発していますか? –
私はoracleバックエンドを使ってデスクトップアプリケーションを開発しています – yesraaj
VC++はそのようなことを開発するための理想的なツールではありません。非.NET Win32実行ファイルをターゲットにする必要がある場合は、C#またはDelphiを参照してください。 –