有很多关于成员函数的指针的讨论,但是我很难理解成员函数隐藏的const状态的问题。有人能给我一个简单的答案吗我在这里做错了什么?
class Entity
{
public:
Entity();
void(Entity::*update_function)();
private:
void update_mode_1() {
}
};
Entity::Entity()
{
update_function = update_mode_1;
//error C3867: 'Entity::update_mode1': non-standard syntax; use '&' to create a pointer to member
}
void test_init() {
Entity obj;
obj.update_function();
//Error: Expression preceding parenthesis of apparent call must have (pointer-to-) function type
}
发布于 2015-12-10 01:43:01
这里是如何解决错误的解决方案,无论如何,似乎与“成员函数的隐藏const状态”无关。
错误C3867:‘Entity::update_mode1 1’:非标准语法;使用'&‘创建指向成员的指针
正如错误消息所述,使用&
创建指向成员的指针。
update_function = &Entity::update_mode_1;
错误:表表调用括号前的表达式必须具有(指针到-)函数类型。
使用指针到成员访问操作符 (例如操作符.*
)调用它。
(obj.*(obj.update_function))();
活着
https://stackoverflow.com/questions/34192160
复制相似问题