2016-07-02 4 views
0

ほとんどのJavaのバックグラウンドからのコミット私は最近、C++の一部を学び始めました。 LinkedListを記述するクラスを作成しようとしています。私はこのクラスを外部ライブラリのようにしたいので、他のアプリケーションで使うことができるので、ヘッダファイルとして宣言する必要があります。ヘッダとcppファイルの実践的なデザインの違い

私は、設計上の観点から、C++にはヘッダとcppファイルの両方が必要であることを理解しています。ここでヘッダには大部分が宣言が含まれ、実装はcppファイルのままです。

私は理解できませんが、上記の設計技術の実際の目的は何ですか。 C++(または少なくとも私のCodeblocksエディタ)がJavaのようなコメントを /**でサポートしているので、ヘッダーファイルをすばやく調べて、各メソッドの機能に関するコメントを読むことは難しいようです簡単にクラスのオブジェクトを作成し、単にヒットします。ボタンを押してメソッドの説明メニューを開き、ヘッダーファイルを調べるよりも整然としたやり方で好きな説明を読んでください。

また、ヘッダファイルの中にすべてを入れて、cppファイルを完全に無視するとプログラムがうまく動作することに気付きました。

私の質問は、ヘッダーファイル内のすべてを実装するか、これが受け入れがたいC++コーディングの練習とみなされるかどうか、そしてもしそうならば、どうしてかということになります。

+0

まったく同じことを尋ねていません。 – exophrenik

+1

多くのC++ライブラリは、実際には "ヘッダのみ"(例えば、ほとんどのブースト)として実装されています。そう、ええ、進んでください。唯一の落とし穴は、ヘッダー内のグローバル変数をインスタンス化できないことです。それらは参照できるだけです。 – kebs

+1

まったく同じ質問をするのはそれほど問題ではありませんが、既存の回答はあなたがここで求めているものに答えるのに十分です。 –

答えて

0

ヘッダーには、中間処理された中間ファイルがあるため、機能を使用するために必要な最小限の機能が含まれています。そのファイルが小さいほど、そのユニットをコンパイルする方が簡単です。

これらは、この意味で構造定義と関数宣言を含む必要があります。これは、使用するために事前の宣言を必要とせず、現在は修正できない歴史的なアーティファクトであるJavaとは異なります。 #includeの行は、実際のC/CPPファイル内のヘッダーに実際にテキストを貼り付けます(前処理、条件付きコンパイルなどもヘッダーで行わなければなりません)。

関連する問題