首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在这个例子中,圆括号“()”-overloading是什么意思?

在这个例子中,圆括号“()”-overloading是什么意思?
EN

Stack Overflow用户
提问于 2015-06-21 16:32:20
回答 1查看 664关注 0票数 0

我是C++的新手。我学习了一个简单的例子(参见下面的代码)。我无法理解超载的目的是什么"()“。std::thread my_thread(my_func);中是否使用“重载()”?

谢谢大家的关注。

代码语言:javascript
复制
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();          
 } 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-21 16:38:29

使用您的func my_func(some_local_state);,您现在可以像这样调用my_func();

是一个函数(而不是像my_func.dosomething();这样的函数),并且

将执行运算符函数。

std::thread以这种方式使用它(不管出于什么原因,创建者只是喜欢它)。

因此,如果没有operator(),您的对象对std::thread就没有意义了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30966801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档