ホームページ >バックエンド開発 >C++ >C++ でさまざまなモジュールの関数を呼び出すにはどうすればよいですか?

C++ でさまざまなモジュールの関数を呼び出すにはどうすればよいですか?

WBOY
WBOYオリジナル
2024-04-12 15:54:021086ブラウズ

C でモジュール間で関数を呼び出す: 関数を宣言: ターゲット モジュールのヘッダー ファイルで呼び出される関数を宣言します。関数の実装: ソースファイルに関数を実装します。モジュールのリンク: リンカーを使用して、関数宣言と実装を含むモジュールをリンクします。関数の呼び出し:呼び出したいモジュールに対象モジュールのヘッダファイルを組み込み、関数を呼び出します。

C++ 中如何在不同模块中调用函数?

C のモジュール間で関数を呼び出す

C では、プロジェクトの規模が大きくなると、コードをさまざまなモジュールに編成して保守性を向上させ、再利用性。モジュールを使用すると、異なるモジュール間で関数と変数を共有することもできます。このチュートリアルでは、モジュール間で関数を呼び出す方法を紹介し、実践的なケースを示します。

ヘッダー ファイルとソース ファイル

各モジュールは、ヘッダー ファイルとソース ファイルの 2 つのファイルで構成されます。ヘッダー ファイルには関数と変数の宣言が含まれ、ソース ファイルにはそれらの実装が含まれます。

関数宣言

あるモジュール内の関数を別のモジュールから呼び出し可能にするには、その関数をヘッダー ファイルで宣言する必要があります。関数宣言では、関数の戻り値の型、名前、パラメーター、および戻り値の型を指定します。例:

// moduleA.h
int sum(int a, int b);

関数の実装

ソース ファイルに関数を実装します。ソース ファイルには、関数の実際のコードが含まれています。例:

// moduleA.cpp
int sum(int a, int b) {
  return a + b;
}

モジュールのリンク

コンパイラが関数の宣言と実装がどこにあるかを認識するには、モジュールを相互にリンクする必要があります。これは、さまざまなモジュールのオブジェクト ファイルを 1 つの実行可能ファイルに結合するリンカーを使用して実行できます。コマンド ラインで、次のコマンドを使用してモジュールをリンクします。

g++ -o executable moduleA.o moduleB.o

実用的なケース

2 つのモジュールがあるとします: moduleAモジュールBmoduleA には greet() という名前の関数があり、moduleB には print() という名前の関数があります。 moduleB から moduleAgreet() 関数を呼び出せるようにしたいと考えています。

moduleA.h

greet() を宣言 関数: <pre class='brush:cpp;toolbar:false;'>// moduleA.h void greet(string name);</pre>

moduleA.cpp

greet で実装() 関数: <pre class='brush:cpp;toolbar:false;'>// moduleA.cpp void greet(string name) { cout &lt;&lt; &quot;Hello, &quot; &lt;&lt; name &lt;&lt; &quot;!&quot; &lt;&lt; endl; }</pre>

moduleB.cpp

で、ヘッダー ファイル moduleA.h を使用し、greet()## を呼び出します。 # 関数:

// moduleB.cpp
#include "moduleA.h"

void print() {
  greet("John");
}
2 つのモジュールをリンクします:
g++ -o executable moduleA.o moduleB.o

実行可能ファイルを実行します:

./executable

出力:

Hello, John!

以上がC++ でさまざまなモジュールの関数を呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。