私は関数ポインタとそれを他の関数のパラメータとして使うことについて読んできました。私の質問は、ポインタを使わずに関数を参照で渡す方法です。私はインターネット上で答えを見つけようとしていますが、良い答えは見つかりませんでした。私はあなたが参照のように変数を渡すことができることを知っています:void funct(int& anInt);
。どのようにこれに似たようなことをしますか?変数への参照の代わりに、関数への参照がパラメータですか?また、関数本体の関数への参照をどのように使用しますか?C++:関数への参照を別の関数に渡すにはどうすればよいですか?
答えて
#include <iostream>
using namespace std;
void doCall(void (&f)(int))
{
f(42);
}
void foo(int x)
{
cout << "The answer might be " << x << "." << endl;
}
int main()
{
doCall(foo);
}
乾杯& HTH、
ちょうど好奇心から、なぜ関数への参照の代わりに関数への参照を使用したいのですか? – fredoverflow
@FredOverflow:ポインタがnullでも無効でもかまいません。参照が有効であり、ヌルでないこと(ヌル参照がない)、またはプログラムにエラーがあることが保証されています。 –
@Alf P. Steinbach: "それ以外の場合は、プログラムにエラーがあります"それは理論的には大変ですが、 'sometype&ref = * ptr;のようなものがあれば、ポインタのアドレスは単純にアドレスにコピーされます参照には有効ではないか、nullである可能性があります。上記のステートメントは、 'ptr'が無効であるかヌルであるときには未定義の動作ですが、コンパイル時や実行時にはこれが表示されないので、プログラマが確実に確認する必要がありますポインタを使用した場合と同じように、有効でnull以外です。だから、私はプログラマーに違いがないと言います。 – newacct
- 1. C関数のポインタ引数にC++参照を渡すにはどうすればよいですか?
- 2. C++関数への参照を渡す
- 3. C++/CLIで関数変数を参照によって渡すにはどうすればよいですか?
- 4. 関数の別の関数への参照によってパラメータを渡す
- 5. C++/CLIでレポートコールバックの関数を参照渡しにするにはどうすればよいですか?
- 6. 関数を介してオブジェクトへの参照を渡すにはどうすればよいですか?
- 7. ある関数から別の関数に引数を渡すにはどうすればよいですか?
- 8. 関数を別の関数にパラメータとして渡すにはどうすればよいですか?
- 9. Cの複数の変数を関数からmainに渡すにはどうすればよいですか?
- 10. 関数内の変数の値をGoogleマップ関数に渡すにはどうすればよいですか?
- 11. どのようにキーや関数にJavascriptの逆参照を渡すには?
- 12. C++の関数への参照によって渡されたオブジェクトを返すのはなぜですか?
- 13. Cythonのc関数へのポインタを渡すにはどうすればよいですか?
- 14. ctypesと関数への参照渡し
- 15. Cで関数内の参照ではなく値で渡される変数を変更するにはどうすればよいですか?
- 16. C++:関数への配列参照を渡すのが普通ですか?
- 17. C#の関数パラメータとしてSTATICメソッドへの参照を渡すには?
- 18. PHP:関数への参照渡しの配列ですか?
- 19. 変数と関数を警告関数に渡すにはどうすればよいですか?
- 20. 別の関数でスカラ関数を参照しています
- 21. C++:関数を(パラメータを知らないうちに)別の関数に渡すにはどうすればよいですか?
- 22. オブジェクト参照を関数に渡す
- 23. 揮発性変数をcの関数に渡すにはどうすればよいですか?
- 24. 参照として渡された関数に引数を渡すにはどうすればよいですか?以下のコードで
- 25. 反復関数への参照によって変数を渡す
- 26. これは関数への参照ですか、何ですか?
- 27. Clojureで関数内の関数を定義し、その関数を参照するにはどうすればよいですか?
- 28. コールバックに関数名を渡すにはどうすればよいですか?
- 29. メンバー関数をクラスコンストラクタに渡すにはどうすればよいですか?
- 30. 関数にコードを渡すにはどうすればよいですか?
注:あなたは関数を渡すことはできません。関数への参照またはポインタのみを渡すことができます。 –