繁体   English   中英

增强与成员函数/变量的绑定

[英]Boost binding with member functions/variables

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只希望有一个参数...我该怎么解决这个问题?

要获取指向数据成员的指针,您无需执行&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);

另外,请重新考虑您的设计-单身人士和这种奇怪的隐藏式隐式参数都不好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM