gpt4 book ai didi

c++ - void operator()() 的功能

转载 作者:IT老高 更新时间:2023-10-28 21:49:18 27 4
gpt4 key购买 nike

我对 void operator()() 的功能感到困惑。

你能告诉我,例如:

class background_task
{
public:

void operator()() const
{
do_something();
do_something_else();
}
};

background_task f;

std::thread my_thread(f);

这里,为什么我们需要operator()()?第一个和第二个()是什么意思?其实,普通算子的操作我都知道,但是这个算子比较困惑。

最佳答案

你可以重载 () 操作符来调用你的对象,就好像它是一个函数:

class A {
public:
void operator()(int x, int y) {
// Do something
}
};

A x;
x(5, 3); // at this point operator () gets called

所以第一个括号总是空的:这是函数的名称:operator(),第二个括号可能有参数(如我的例子),但他们不必(如您的示例)。

因此,要在您的特定情况下调用此运算符,您可以执行 task() 之类的操作。

关于c++ - void operator()() 的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11857150/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com