从类 A 到类 B 的方法的 void 指针
Void pointer from class A to method from class B
我需要知道是否可以"转换"从一个类到另一个类的成员变量的方法所以我可以从另一个类(例如从 bar)调用此方法(例如来自 foo)
应该看起来像
void bar::setFunction( void(*f)())
{
/*bar::*/func = f; // func <= void (*func)();
}
int main()
{
foo myclass;
bar myotherclass;
bar.setFunction( &myotherclass.dosth);
}
这解决了我的问题:
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 );
}
相关文章:
- 将一个类的方法指针存储到另一个类中
- 如何调用返回类方法指针的类方法
- 通过reinterpret_casting方法指针从指针调用派生类的方法。这是 UB 吗?
- 泛型方法指针.reinterpret_cast指向不同类的方法指针,这是 UB 吗?
- C++;类方法指针;λ;将 lambda 作为成员函数指针传递;
- 使用模板、方法指针和字符串键入推导
- 将方法指针作为整数参数发送到C#的C 方法
- 从C 中的VTable获取方法指针
- 模板化方法指针 - 无法匹配函数参数的指针
- 获取特定的模板重载方法指针
- 如何将方法指针声明为Typedef方法参数
- 如何将方法指针类型转换为函数指针类型
- 如何在使用 pthreads 时将方法指针作为函数参数传递C++
- 方法指针映射,编译器说他们不接受任何参数
- C# 方法指针,如 C++ 中的指针
- c++创建新的LinkedList类:Clear()方法指针被释放未分配
- 尝试获取类方法指针时出现E_NOINTERFACE
- 传递和强制转换方法指针
- 常量方法指针的类型是什么
- 将对象的方法指针传递给接受 [静态方法指针/全局函数] 指针的函数