此示例中的圆括号"()" -重载是什么意思
What does the round brackets"()"-overloading mean in this example
我是C++的新手。我学习了一个简单的例子(参见下面的代码)。我无法理解超载"()"的目的是什么。std::thread my_thread(my_func);
中是否使用了"重载()"?
感谢您的关注。
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();
}
使用func my_func(some_local_state);
,您现在可以像这样呼叫my_func();
是一个函数(而不是类似my_func.dosomething();
的函数),并且
中的循环将执行操作员功能。
std::thread
就是这样使用它的(不管出于什么原因,创作者只是喜欢它)
因此,如果没有operator()
,您的对象对std::thread
就没有意义
相关文章:
- 重载运算符的范围是什么?它是否会影响作为类成员的集合的插入函数?
- 函数模板实例化、替换和重载解析的顺序是什么?
- "operator()"在重载运算符方法中是什么意思,在priority_queue(STL)中用作C++中的比较器?
- C++,()运算符重载,它的工作是什么
- C++函数重载,具体步骤是什么
- 在 std::visit 中跳过变体类型的一些重载组合的方法是什么?
- c++运算符重载-我实际返回的操作数类型是什么
- 将显式指定的函数模板重载作为模板参数传递的正确语法是什么?
- 将强制转换运算符重载到 std::map 的正确语法是什么
- std::forward() 的右值引用重载的目的是什么?
- & 字符在重载 std::cout 中的功能是什么?
- 运算符重载中变量的数据类型和范围应该是什么
- 重载加号运算符的正确方法是什么
- C++重载运算符两次,一个返回非常量引用,另一个返回常量引用,首选项是什么
- 重载全常量类型的复制赋值运算符的正确方法是什么?
- 使用重载添加两个矩阵的最佳方法是什么?
- 这个算子重载函数重载是什么
- 这[i]在C ++中的含义是什么,没有重载
- 非成员操作符重载是什么意思?
- 此示例中的圆括号"()" -重载是什么意思