0

A 类可以访问 B 类。

在 B 类函数中,我想调用 A 类中定义的函数,并将 B 类的参数传递给它。

因此,在 AI 类中,尝试编写以下内容以向 B 类提供所需的功能。

A::provideFunction
{
    boost::function<void()> f = boost::bind(&A::Foo,this,boost::ref(&B::_param1,B::instance()),boost::ref(&B::_param2,B::instance())));
    B::instance()->provideFunction(f);
}

在 B 类中,我只调用函数:

B::callFunction()
{
    _param1 = "A";
    _param2 = "B";
    _f();
}

我遇到的问题是 boost:ref 只需要 1 个参数......我能做些什么来解决这个问题?

4

1 回答 1

1

要获取指向数据成员的指针,您不要这样做&T::foo,只需执行&obj->foo. 要获得参考包装,ref(obj->foo).

B* b = B::instance();
boost::function<void()> f = boost::bind(
    &A::Foo, this, boost::ref(b->_param1), boost::ref(b->_param2)
);
b->provideFunction(f);

另外,重新考虑你的设计——单例和这种奇怪的隐藏隐含参数都不是好事。

于 2011-11-09T18:59:55.577 回答