2011-08-09 4 views
34

私は最近Java for C++から移動しましたが、アプリケーションを書いているときに、メイン関数にコードのすべてを書きたいとは思っていません。メイン関数で別の関数を呼び出すのですが、この他の関数は別の.cppファイル。C++プログラムで複数の.cppファイルを使用していますか?

あなたが理解していない方が良いと私に説明してください:
私は一つのファイルを持っています:main.cpp私は主な機能を持っています。

私は2番目のファイルがあります:私は機能を持っている内second.cpp

...任意の助けを、私は私の主な機能からsecond()と呼ばれるこの関数を呼び出したいsecond()と呼ばれますか?

+7

ああ、ヘッダファイルの喜び...... –

+6

あなたは[良い入門書](http://stackoverflow.com/q/388242/46642)からC++を勉強していますか? –

+1

井戸のヘッダーファイルが答えですので、あなたが間違っていることが分かっていないことを知っているからです。あなたが持っているコードとあなたが得るエラーを投稿してください。さもなければ、私たちはただ推測しています。 – john

答えて

50

「ヘッダー」と呼ばれるツールを使用する必要があります。ヘッダーでは、使用する関数を宣言します。次に、それを両方のファイルに含めます。ヘッダは、#includeディレクティブを使用してインクルードされた別のファイルです。次に、他の機能を呼び出すことができます。

// other.h 
void MyFunc(); 

// main.cpp 
#include "other.h" 
int main() { 
    MyFunc(); 
} 

// other.cpp 
#include "other.h" 
#include <iostream> 
void MyFunc() { 
    std::cout << "Ohai from another .cpp file!"; 
    std::cin.get(); 
} 
+2

@TheCompBoy:質問をする前に徹底的に回答を探しましたか? http://stackoverflow.com/questions/how-to-ask – Vlad

+0

.hファイルの目的をさらに説明してもらえますか? other.cppファイルに記載されている情報が含まれていないようです –

5

ヘッダーファイル(* .H)があります。そこに関数/クラスを宣言します。たとえば、main.cppファイルには#include "second.h"が必要です。 second.h

あなただけsecond.cppでこのvoid yourFunction(); のように宣言します。また、このことができますsecond.cpp

希望の初めに#include "second.h"に忘れてはいけない

void yourFunction() { 
    doSomethng(); 
} 

のようにそれを実装:)

12

関数の宣言を含むヘッダーファイル(.h)、dを含む対応する.cppファイル控除。次に、必要な場所にヘッダファイルをインクルードします。定義を含む.cppファイルには、(対応する)ヘッダーファイルも含める必要があることに注意してください。

// main.cpp 
#include "second.h" 
int main() { 
    secondFunction(); 
} 

// second.h 
void secondFunction(); 

// second.cpp 
#include "second.h" 
void secondFunction() { 
    // do stuff 
} 
関連する問題