我需要知道是否可以转换' 从一个类到另一个类的成员变量的方法 所以我可以从另一个类(例如从bar)调用这个方法(来自例如foo)
应该看起来像
void bar::setFunction( void(*f)())
{
/*bar::*/func = f; // func <= void (*func)();
}
int main()
{
foo myclass;
bar myotherclass;
bar.setFunction( &myotherclass.dosth);
}
答案 0 :(得分:0)
这解决了我的问题:
typedef std::function<void()> Func;
class bar
{
public:
void setFunction( std::function<void()> f ) {
func = f;
}
void call()
{
func();
}
private:
Func func;
};
class foo
{
public :
static void dosth()
{
std::cout << "hallo" << std::endl;
}
};
int main( int argc, char** argv )
{
foo myclass;
bar myotherclass;
Func fd = &myclass.dosth;
myotherclass.setFunction( fd );
myotherclass.call(); // this calls the foo method dosth -> "hallo"
_sleep( 600 );
}