我可能有点紧张,但无法理解下面的行是什么?了解C++中的运算符过载
class background_task
{
public:
void operator()() const
{
do_something();
do_something_else();
}
};
background_task f;
std::thread my_thread(f);
我认识一个线程(名为
my_thread
)创建它调用对象background_task
类的f
但当在background_task
类功能operator()
其实叫什么名字?为什么要重载函数操作符?我知道这是C++ 101或非常基本的,但我仍然无法掌握它,所以我应该参考哪些书籍来了解更多关于这些C++主题的内容。
这不是关于[运算符重载](http://stackoverflow.com/q/4421706/1025391),而是关于C++函子。看到这篇文章:http://stackoverflow.com/a/356993/1025391为您的问题的详细答案。 – moooeeeep 2012-04-11 17:44:36
别担心;这不是C++ 101.介绍性的C++类当然不会涵盖线程,可能不会涵盖自定义函数调用操作符,甚至可能不包括编写自己的类。 – 2012-04-11 18:30:13