创建函数指针作为 C++ 类的成员变量

问题描述 投票:0回答:1

我有一个回调函数指针

typedef
如下:

typedef bool (*PFN_EventCallback)(uint16 event_code, void* sender, void* listener_inst, EventData data);

此类型定义是结构体的一部分,如下所示:

struct Event
{
    void* Listener;
    PFN_EventCallback Callback;
};

现在我想定义一个类成员,例如:

  class Application
    {
        \\Other member of the class
        PFN_EventCallback ApplicationOnEvent;
    };

如何定义函数的实现

ApplicationOnEvent
?当
Application.cpp
文件中的实现如下时:

bool ApplicationOnEvent(uint16 code, void* sender, void* listener_inst, EventData context)
{
    switch (code) {
    case EVENT_CODE_APPLICATION_CODE: {
        AppState.IsRunning = false;
        return true;
    }
    }
    return false;
}

我得到的错误是

AppState
未定义,它是Application类的另一个成员。谁能帮我这个?我的基本问题是如何创建一个函数指针作为类中的成员变量并为其分配一个函数实现,该函数实现可以发送到结构体进行回调?

c++ event-handling
1个回答
0
投票

查看最后的代码框,对象

AppState
未在任何地方定义(至少从您所显示的内容来看)。什么是AppState?

如果 AppState 是您调用对象的对象,您可以改为

this->IsRunning = false;
(假设 IsRunning 是 Application 类中的变量/成员。

如果它是在其他地方定义的,也许检查您的文件(Application.cpp)是否有任何可能丢失的标头/cpp 包含(

#include ...

希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.