gpt4 book ai didi

应用于对象的 C++ 成员函数

转载 作者:太空狗 更新时间:2023-10-29 20:32:21 24 4
gpt4 key购买 nike

我想通过将其作为模板参数传递来调用成员函数,而不使用 boost 是可能的。这是我尝试做的一个例子,

class object { void method(); }

{
object object_instance;
...
apply<object:: method>();
...

template<class F>
void apply() { F(object_instance); } // want to call object_instance.F()
}

那是行不通的,所以问题是如何将对象方法绑定(bind)到对象。谢谢

上面是一个例子,不是真正的代码。我有一堆函数,只是名称不同,但有很多参数,我想在运算符中包含这些函数。

最佳答案

类似于:

struct foo
{
void bar(void) {}
};

template <typename R, typename C>
R apply(C& pObject, R (C::*pFunc)())
{
return (pObject.*pFunc)();
}

int main(void)
{
foo f;
apply(f, &foo::bar);
}

这个。

关于应用于对象的 C++ 成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2173995/

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