[英]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.