2009-03-26 16 views
2

Visual Studioでは、クラスのコンストラクタコードとイベント処理コードを.hファイルに入れたいと思われるようです。私は小規模の1人のプロジェクトにしか関与しておらず、一般的な業界標準が何であるか疑問に思っていました。Visual Studio C++のベストプラクティス

Visual C++アプリケーションのプロジェクトでは、.hファイルにどのコードを挿入しますか?私はあなたのクラスを.hファイルで宣言し、.cppファイルでコーディングする古典的なC++の方法に慣れています。これはVisual Studioアプリケーションにも適用されますか?

私はこのことに対する私の好みを説明する強いCの背景を持っています。 VSC++コンパイラは気にしないようです。

簡潔に:ファイルの種類を入力する必要がありますか? Visual C++アプリケーションの 1が.hの ファイルにどのようなコードを置くのプロジェクトのための

TIA は

答えて

3

広く認められている業界標準はありません。関数定義をヘッダに入れることで、コンパイラにコードをインライン化する機会が増えます。利点は、コードをより速く実行できることです(ただし、これらの機能は短くしてください)。しかし、これは、ヘッダーを含むクライアントにもっと多くのコードを公開することになります。これにより、実装を変更したときにファイルを再コンパイルすることができます。

また、ツールに掛かるコストも考慮する必要があります。 VC++のウィザードはヘッダーに関数を置くことを主張しているので、あなたが同意しないと、毎回それらを移動する必要があります。

これは本当にプロジェクト固有のものです。

+0

ありがとうCarl。あなたが言うことは、私が気づいたことです。私は私が見たいと思っていないことを確認する必要がありました。 – EndsOfInvention

2

を終了しますか?私は古典的なモード に慣れていて、 .hファイルでクラスを宣言し、.cppファイルでコーディングするC++の方法に慣れています。 これはVisual Studio アプリケーションにも適用されますか?

ショート:はい ロング:人または言語によって異なります。 C++では、ヘッダは宣言用で、cppはコーディング用です。 C#の場合、1つのファイルしか持っていません(または、インターフェイスを使用する場合は2)

3

MFCを使用していて、生成されたコードについて話している場合は、そのままにしておくことをおすすめします。

「通常の」C++開発をしようとしている場合は、ヘッダーに入れるほどのものを入れないでください。クライアントコードがあまりにも多くの実装の詳細に依存しないためです。あなたが取り除くことができるのは、テンプレートの使用と、パフォーマンス予算がどれくらい間接的にサポートできるかによって異なります。

1

これはマイナーなように見えるかもしれませんが、ヘッダーはいくつかの場所に#includeされています。 (ヘッダーを含むヘッダーはさらに複雑になります。)ヘッダーを変更すると、いつでも多くのファイルが再度コンパイルされます。ヘッダーに頻繁に変更されるコードをほとんど保持しないようにすると、依存ファイルの再コンパイルが減少します。

別のこと:整頓されたヘッダーファイルは、クラス/フォームが提供しなければならないことの概要を簡単に示します。

関連する問題