약간 고밀도이지만 아래 라인이 이해할 수없는 부분이 있습니까? 내가 객체 호출 (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++ 클래스는 확실히 쓰레드를 다루지 않을 것이고, 아마도 커스텀 함수 호출 연산자를 다루지 않을 것이고, 심지어 자신의 클래스를 작성하는 것을 다루지 않을 수도 있습니다. –