少し密度が高いかもしれませんが、下の行は何を理解できませんか?私は、オブジェクトを呼び出します(my_thread
を命名)スレッド作成さを実現C++で演算子のオーバーロードを理解しています
class background_task
{
public:
void operator()() const
{
do_something();
do_something_else();
}
};
background_task f;
std::thread my_thread(f);
クラス
background_task
のf
が、ときに、クラスbackground_task
内の関数operator()
が実際に呼ばれているのですか?なぜ関数演算子のオーバーロードが必要ですか?
私はこれがC++ 101または非常に基本的だと理解していますが、それでも理解できません。そのため、C++のトピックについて詳しく知るにはどの書籍を参照するべきですか。
これは、[演算子のオーバーロード](http://stackoverflow.com/q/4421706/1025391)ではなく、C++ファンクタについてです。あなたの質問への詳細な回答については、この投稿:http://stackoverflow.com/a/356993/1025391を参照してください。 – moooeeeep
心配はいりません。これはC++ 101ではありません。初心者のC++クラスはスレッドをカバーしませんし、カスタム関数呼び出し演算子をカバーしていない可能性もあり、独自のクラスを記述することさえできないかもしれません。 –