gpt4 book ai didi

C++:如何将指针传递给另一个类的成员函数?

转载 作者:行者123 更新时间:2023-11-30 01:52:09 25 4
gpt4 key购买 nike

当我想将指针传递给作为 成员的函数时,类 classA 的函数 Foo() 的签名必须如何查看B类?函数 update()classB 的实例上调用,并传递给 classA 的对象。在 update() 中,classA 的函数 Foo() 应传递一个指向回调函数的指针。该函数是 classB 的成员。我不能在这里做任何静态的事情。有没有办法做到这一点,也许是 boost::function

代码:

class classA
{
public:
voif Foo(/*a pointer to a memberfunction of ClassB*/)
};

class classB
{
classB(){nVal = 0;}
int nVal;
public:
void increment(int n){nVal += n;}
void update(classA objA)
{
objA.Foo(increment)
}
};

最佳答案

您可以将 boost::bindboost::function 一起使用。

class classA
{
public:
void Foo(const boost::function<void(int)>& function)
{
}
};

class classB
{
public:
//
void update(classA objA)
{
objA.Foo(boost::bind(&classB::increment, this, _1));
}
};

关于C++:如何将指针传递给另一个类的成员函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25079099/

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