我是C++的新手。我學習一個簡單的例子(見下面的代碼)。我不能說明重載「()」的目的是什麼。 std::thread my_thread(my_func);
中使用「overloading()」嗎?什麼是圓括號「()」 - 在本例中的重載意味着
感謝您的關注。
struct func
{
int& i;
func(int& i_) : i(i_) {}
**void operator()()** // the question point
{
for (unsigned j=0 ; j<1000000 ; ++j)
{
do_something(i);
}
}
};
void oops()
{
int some_local_state=0;
func my_func(some_local_state);
std::thread my_thread(my_func);
my_thread.detach();
}
我明白這是重載的功能操作。所以你可以把對象的一個實例轉換成一個函數。也稱爲重載括號操作符。這可能有助於確定正確的教程,祝你好運! – PunkUnicorn
在網絡中搜索術語「仿函數」或「函數對象」。 –
感謝大家 – rayallen