この問題が報告された場合は申し訳ありませんが、簡単にオンラインで解決策を見つけることはできません。 operator()()をオーバーライドすると、これによってどのような動作が定義されますか?operator()()は何を定義していますか?
5
A
答えて
8
operator()
は、関数呼び出し演算子です。つまり、対応する型のオブジェクトを関数オブジェクトとして使用できます。 2番目の括弧のセットには、(通常通り)空の引数のリストが含まれています。例:
struct foo {
int operator()() { return 17; };
};
int main() {
foo f;
return f(); // use object like a function
}
上記の例では、演算子の宣言方法と呼び出し方法を示しています。現実的な使用はおそらくオペレータのメンバ変数にアクセスするでしょう。 Functionオブジェクトは、標準C++ライブラリの多くの場所でカスタマイズポイントとして使用されます。関数ポインタではなくオブジェクトを使用する利点は、関数オブジェクトにデータを添付できることです。
関連する問題
- 1. C++のoperator - >()の定義
- 2. 私のフォントの色は何を定義していますか?
- 3. マーカークッキーは何を定義していますか?
- 4. unique_ptr :: operator bool()はmove()dからのunique_ptrに対して定義されていますか?
- 5. javaのoperator >>とoperator >>>の違いは何ですか?
- 6. どのように:: operator new()()と:: operator new()の違いは何ですか?
- 7. ノードシェルで 'this'とは何が定義されていますか?
- 8. 定義されていないユーザー定義型とは何ですか?
- 9. 関数定義とクラス定義の違いは何ですか
- 10. Dockerタグとは何ですか(定義を探しています)?
- 11. Azureサービス定義:Runtime Execution Contextは実際に何をしていますか?
- 12. Operator =は、UIElementおよびUIElementの型に対して定義されていません。
- 13. Uri.LocalPathとは何も定義されていないローカルパスとは何ですか?
- 14. 双方向イテレータのoperator <をどのように定義できますか?
- 15. クラスコンストラクタを定義する正しい方法は何ですか?
- 16. プラグインの設定で定義されている「実行可能」プロパティは何を意味していますか?
- 17. guileまたはschemeには何が定義されていますか?
- 18. これは何を定義しますか?
- 19. この構造体定義でコロンは何をしますか?
- 20. クラス<<内部でクラス定義は何をしますか?
- 21. 何かを定義するには?
- 22. 引数の型int、int []に対してoperator +が未定義です
- 23. string :: atとstring :: operator []の違いは何ですか?
- 24. operator =のオーバーロードとコピーコンストラクタのオーバーロードの違いは何ですか?
- 25. 電子メール$ _postは定義されていないerorrを取得しますが、名前= ""を定義しました。何ですか?
- 26. シンボルを何も定義しない#イディオムの名前は何ですか?
- 27. Bluetooth LE(スマート)コーヒーメーカーの正しいサービス定義は何ですか?
- 28. Javascript - 定義はcdnから定義されていません
- 29. NSConcreteDataとは何ですか、そしてそれはどこに定義されていますか?
- 30. internal :: state :: Entryとは何ですか?そしてそれはどこに定義されていますか?
これは関数呼び出し演算子です。これは便利かもしれません:http://stackoverflow.com/questions/4421706/operator-overloading – chris