1.8マルチファイルプログラム

4344 ワード

fromhttp://www.learncpp.com/cpp-tutorial/18-programs-with-multiple-files/
プログラムが大きくなると、より良い組織のために、通常は複数のファイルに分けられます.IDEを使って作業する利点の一つは、マルチファイルプロジェクトの実施が簡単であることです.コンパイル単一ファイルプロジェクトの作成方法はすでに分かりました.既存のプロジェクトに新しいファイルを加えるのは簡単です.
Visual Studio 2005 Expressでは、ソリューションのリソースマネージャに右ボタン「source files」を押して、新規アイテムを追加することを選択します.新しいファイルの名前を指定して、プロジェクトに追加します.
コード::Blocksにも同様の方法で追加されます.
以前のようにあなたのプログラムをコンパイルしたいです.これより簡単なことはないです.
以下の複数のファイルを検討します.
add.cpp:
   1: int add(int x, int y)
   2: {
   3:     return x + y;
   4: }
 
main.cpp
   1: #include <iostream>
   2:  
   3: int main()
   4: {
   5:     using namespace std;
   6:     cout << "The sum of 3 and 4 is: " << add(3, 4) << endl;
   7:     return 0;
   8: }
このプログラムをコンパイルすると、コンパイルではなく、いくつかのコンパイルエラーが発生します.
add.cpp(10) : error C3861: 'add': identifier not found

add.cpp(15) : error C2365: 'add' : redefinition; previous definition was 'formerly unknown identifier'
 
(ここの10行目の15行目は与えられたコード行と一致していません)
コンパイラがコードファイルをコンパイルすると、関数が他のファイルに存在することが分かりません.したがって、異なるファイルに同じ名前の関数や変数が含まれています.
しかし、この例では、関数addがadd.cppファイルに存在することをコンパイラが知りたいです.main.cppをadd関数にリンクして、前の声明を使います.
前の文を持っているmail.cpp:
   1: #include <iostream>
   2:  
   3: int add(int x, int y); // forward declaration using function prototype
   4:  
   5: int main()
   6: {
   7:     using namespace std;
   8:     cout << "The sum of 3 and 4 is: " << add(3, 4) << endl;
   9:     return 0;
  10: }
今、コンパイラがmain.cppをコンパイルするとき、addは何か分かります.この方法を使うと、関数があるファイルにファイルをリンクすることができます.しかし、アイテムが大きくなると、各ファイルに関数を使う前の前置きがますます嫌になります.この問題を解決するために、ヘッダファイルの概念が紹介されます.私たちは最初のファイルのセクションで質問します.
add.cppとmain.cppをコンパイルしてみます.私たちは対象に向かってプログラミングする時に多くのファイルを使うので、どのようにファイルをあなたのプロジェクトに追加してコンパイルして実行するかを理解できるようにするべきです.