C の "自由関数" の概念を理解する
boost::test ドキュメント内で "自由関数" という用語に遭遇すると、しばしばスパークします。その正確な意味についての質問。初期の仮定では、自由関数は戻り値のない関数であり、戻り値の型が void であることを暗示している可能性があります。しかし、さらに詳しく調べると、フリー関数には引数も除外されているように見えることがわかります。
これらの概念を明確にするために、C プログラミングのコンテキストでフリー関数が実際に何を表すかを定義しましょう。
C では、フリー関数はfunction は、単にクラスまたは構造体の外部に存在する関数です。特定のクラスに属し、そのデータ メンバーやメソッドにアクセスできるメンバー関数とは異なり、フリー関数は独立して動作します。
クラスまたは構造体のメンバーシップを示さない C のすべての関数は、フリー関数とみなされます。 。この分類には、値を返さない関数 (戻り値の型が void) と引数を受け入れる関数が含まれます。
説明のための例を次に示します。
struct X { void f() {} // not a free function }; void g() {} // free function int h(int, int) { return 1; } // also a free function
この例では、関数 f構造体内で定義された X は、X 構造体に属しているため、自由関数ではありません。一方、 g と h はどちらもクラスや構造体に関連付けられていないため、自由関数です。
以上がC における自由関数とは正確には何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。