簡體   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