gpt4 book ai didi

c++ - 调用 std::unique_ptr 指向的底层对象的 operator()

转载 作者:搜寻专家 更新时间:2023-10-31 00:25:46 24 4
gpt4 key购买 nike

我有一个定义了 operator() 的类:

class Base{
...
public:
int operator()(int arg)
{
return arg+42;
}
virtual void run(void) = 0;
...
};

一些派生类:

class Derived : public Base
{
...
public:
void run(void)
{
//do something
}
};

然后就是这个数据结构

struct Routine
{
const uint16_t routine_id;
std::unique_ptr<Base> callback;
};

const Routine routines[] = {
{ 0x0001, std::make_unique<Derived>() },
{ 0x0002, std::make_unique<Derived2>() }
// etc
};

通过 p 调用 operator() 是否有比这更好的语法:

std::cout << routines[0].callback->operator()(21);

?

最佳答案

is there better syntax for calling operator() through p than this:

std::cout << routines[0].callback->operator()(21); 

?

您可以取消引用指针:

std::cout << (*routines[0].callback)(21);

关于c++ - 调用 std::unique_ptr 指向的底层对象的 operator(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54968235/

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