我是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