增强与成员函数/变量的绑定
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::callFunction()
{
_param1 = "A";
_param2 = "B";
_f();
}
我遇到的问题是 boost:ref 只需要 1 个参数...我能做些什么来解决这个问题?
Class A has access to class B.
In a class B function, I'd like to call a function defined in class A, and pass to it arguments from class B.
So in class A I try to write the following to provide the desired function to class 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);
}
In class B, I just call the function:
B::callFunction()
{
_param1 = "A";
_param2 = "B";
_f();
}
The problem I have is that boost:ref expects only 1 argument... what can I do to resolve this issu?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
要获取指向数据成员的指针,您不需要执行
&T::foo
,只需执行&obj->foo
。要获取引用包装器,ref(obj->foo)
。另外,重新考虑你的设计——单例和这种奇怪的隐藏隐式参数都不好。
To get a pointer to data member, you don't do
&T::foo
, just do&obj->foo
. To get a reference wrapper,ref(obj->foo)
.Also, rethink your design — neither singletons nor this weird hidden implicit arguments thing are good.