【发布时间】:2018-01-21 13:04:52
【问题描述】:
在 SomeClass.h
class SomeClass{
public:
static std::vector<void (*)()> UpdateFuncs;
}
在 OtherClass.h
class OtherClass{
private:
void Update();
public:
OtherClass();
}
在OtherClass.cpp
OtherClass::OtherClass(){
Time::UpdateFuncs.push_back(&(this->Update));
}
在构建时我得到'&':对绑定成员函数表达式的非法操作
如果我这样做:
.push_back(&Update);
然后我得到“没有重载函数的实例
std::vector<_ty _alloc>::push_back [with _Ty=void (*)(), _Alloc=std::allocator]" 匹配参数列表"
提前致谢
【问题讨论】:
-
&Update不是void (*)()。此代码无法工作。你有什么问题? -
我的问题是如何更改更新以使其正常工作
-
您必须使
Updatestatic获得该类型。 -
你想解决什么问题?
Update是一个非静态成员,它有一个隐含的this参数。您希望如何在呼叫现场提供它?
标签: c++ pointers function-pointers