C ++での「フリー関数」という用語の意味は何ですか?


95

boost :: testのドキュメントを読んでいるときに、「フリー関数」という用語に出くわしました。私が理解しているのは、フリー関数は何も返さない関数であるということです(その戻り型は無効です)。しかし、さらに読んだ後、無料の関数も引数を取らないようです。しかし、私にはわかりません。これらはすべて私の仮定です。だれでも自由関数を定義できますか?

回答:


114

C ++におけるフリー関数という用語は、単に非メンバー関数を指します。メンバー関数ではないすべての関数はフリー関数です。

struct X {
    void f() {}               // not a free function
};
void g() {}                   // free function
int h(int, int) { return 1; } // also a free function

別のファイルにメイン関数があり、その内部でフリー関数を呼び出す必要があるとしましょう。そのため、後でメインファイルに含める他のファイルにフリー関数を含めるにはどうすればよいですか?私の無料の関数が実装されているhppファイルを作成する必要があります(静的インライン関数など)?
ジョイ

4
通常は、それらをヘッダーファイルで宣言し、別のソースファイルに実装します(テンプレート関数などの一部の例外はあります)。人々がなど詳細をご答えることができるようにかかわらず、特定のトピックに関する新しい質問を開くために良いだろう
ゲオルクフリッチェ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.