私は最近、C++のJavaから移動しましたが、アプリケーションを作成するとき、メイン関数で別の関数を呼び出すためにメイン関数でコードのすべてを書くことに興味がありません。他の関数は別の.cppファイルにあります。
理解できない場合は、もっと詳しく説明します。
1つのファイル:_main.cpp
_があり、その中にメイン関数があります。
2番目のファイルがあります:_second.cpp
_内部にsecond()
という関数があります。この関数をメイン関数からsecond()
と呼びます。
助けがありますか?
「ヘッダー」と呼ばれるツールを使用する必要があります。ヘッダーで、使用する関数を宣言します。次に、それを両方のファイルに含めます。ヘッダーは、#include
ディレクティブを使用して含まれる別個のファイルです。その後、他の関数を呼び出すことができます。
void MyFunc();
#include "other.h"
int main() {
MyFunc();
}
#include "other.h"
#include <iostream>
void MyFunc() {
std::cout << "Ohai from another .cpp file!";
std::cin.get();
}
関数の宣言を含むヘッダーファイル(.h)、次に定義を含む対応する.cppファイルが必要です。次に、必要な場所にヘッダーファイルを含めます。定義を含む.cppファイルには(対応する)ヘッダーファイルも含める必要があることに注意してください。
// main.cpp
#include "second.h"
int main () {
secondFunction();
}
// second.h
void secondFunction();
// second.cpp
#include "second.h"
void secondFunction() {
// do stuff
}
C/C++には、ヘッダーファイル(* .H)があります。そこで、関数/クラスを宣言します。したがって、たとえば_#include "second.h"
_を_main.cpp
_ファイルに追加する必要があります。
_second.h
_では、このように宣言するだけですvoid yourFunction();
_second.cpp
_では、次のように実装します
_void yourFunction() {
doSomethng();
}
_
_#include "second.h"
_の先頭でも_second.cpp
_を忘れないでください
お役に立てれば:)
second()
関数の前方宣言を、main()
の上にある_main.cpp
_に配置するだけです。 _second.cpp
_に複数の関数があり、そのすべてをmain()
に含める場合は、_second.cpp
_の関数のすべての前方宣言をヘッダーファイルに入れ、_#include
_ _main.cpp
_にある。
このような-
Second.h:
_void second();
int third();
double fourth();
_
main.cpp:
_#include <iostream>
#include "second.h"
int main()
{
//.....
return 0;
}
_
second.cpp:
_void second()
{
//...
}
int third()
{
//...
return foo;
}
double fourth()
{
//...
return f;
}
_
注:_#include "second.h"
_を_second.cpp
_にする必要はありません。コンパイラに必要なのは前方宣言だけで、リンカは他のファイルでそれらの宣言の定義を検索する仕事をします。